问两个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();
}
}
}