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

关于java输入的问题,望高手指教 ^_^
前几天刚知道要想在java环境下获得int类型的变量,必须通过以下的代码来实现:

BufferedReader   buf   =   new   BufferedReader(   new   InputStreamReader(System.in));
String   s   =   buf.readLine();
int   i   =   Integer.parseInt(s);

但是这样的输入必须是输入一个数字敲一下回车,有没有像C++中cin那样的可以忽略空格的一次可以输入多个数据?

再有一个问题就是:上面的那段代码有没有更简单的方法,比如C++就是一个cin就可以搞定了,而C#也就是一个ReadLine。为什么java要把输入搞得这么复杂?难道就没有一个int   i   =   System.in.read()吗?可是当我这么输入的时候,竟然是输入12,输出49!无奈,看不明白。。。

------解决方案--------------------
import java.util.*;
public class T1 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s = new Scanner(System.in);
int a,b,c;
a = s.nextInt();
b = s.nextInt();
c = s.nextInt();
//控制台> 1 2 3
//然后回车
System.out.println(a+ "\t "+b+ "\t "+c);
}

}

int i = System.in.read()吗?可是当我这么输入的时候,竟然是输入12,输出49!
读的是字符1,ascii是49,如果你两次调用,第二次输出是50,因为‘1’后面输入的是‘2’
int i = System.in.read();//输入12
System.out.println(i);//输出49
i = System.in.read();//这里不用输入,因为上面输入了12,还有2在缓冲区
System.out.println(i);//直接输出50