System.in.read()问题
Java code
public class A {
public static void main(String[] args) {
try{
for(int i=0;i<10;i++)
{
System.out.println("i的值为:"+i);
System.out.println("输出为:"+System.in.read());
}
}catch(Exception e){
}
}
}
这是我刚才写的一个测试System.in.read()类、
发现一个问题 当第一次从键盘输入一个字符是 正常
但是i=1 也就是又该输入的时候 出了问题
System.in.read()不用键盘输入 自动就 得到了个 unicode为 13的值就自动跳过去
i=2的时候 还是一样情况 得到 10自动跳过去
一直到 i=3的时候 又被控制台截获 才可以从控制台输入
总体讲就是 输入 1 得到 49
但是 如果你后边还有两个System.in.read() 会自动得到 13,和 10 两个值不用你输入
这是什么原因?
------解决方案--------------------输入1==输入1 +\r\n所有就回出现你说的那样问题。回车也被接收了(\r\n)
------解决方案--------------------换行回车都会被放到缓冲里面。每次读取回被读取到一个字符。
如果想要你的要得效果可以br = BufferedReader(System.in)
然后br.readline();