日期:2014-05-20  浏览次数:20797 次

问两个JAVA入门级的问题
我截取屏幕上输入的字符一般是这样做的
byte   []   buf=new   byte   [50];
System.in.read(buf);
这段的意思是不是把屏幕上的内容通过System.in.read(buf);来给buf这个数组
那难道我输入了abcd那就是buf[0]就是a,buf[1]就是b,buf[2]就是c,buf[3]就是d吗   如果我想看buf内每个单位的内容应该怎么看呢   我不要把buf转成字符串   我想直接通过for循环来依次输出buf数组内的内容可以吗

还有就是我连续调用System.in.read(buf);是不是后一次调用后就把前一次的覆盖掉了,我的意思是前一次我输入1111,后一次我输入222,那在buf这个数组里的内容是怎么样了呢,是2221吗   还是前一次好了用JAVA那个什么垃圾回收机制什么的清零了   后面内容就是222了啊  

其实我只是看JAVA没几天   问题幼稚了点   其实心里还有很多问题   不过一下子想不起来了   记起来再上来问   麻烦各位大虾拉  




------解决方案--------------------
第一问题
for(i=0;i <buf.length;i++)
System.out.prinrln(buf[i])

第二个问题
第一次输入 把1111存入buf[0] 222存入buf[1]............依次类推

------解决方案--------------------
用那些输入输出类包装一下:
给你个例子程序:

import java.io.*;
public class TestTransform {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = null;

try {
s = br.readLine();
while(s != null) {
if(s.equalsIgnoreCase( "exit ") || s.equalsIgnoreCase( "quit ")) break;
else {
System.out.println(s.toUpperCase());
s = br.readLine();
}
}
br.close();
}
catch(Exception e) {
e.printStackTrace();
}
}
}