关于System.in的标准输入的问题
Java 的输入输出太烦了,像C++,加iostream .h 头文件后,cin、cout就直接可以输入输出,如对于输入的变量,自动转换成所定义的格式。
如
int a ;
cin>>a;
直接,所输入的数就是a的值。如输入123,则a的值为123.
而对于java,对于标准输出流还好,System.out.print();就可以输出所需要输出的;但对于标准输入流,就是在太麻烦了。
byte[] a = new byte[];
System.in.read(a);
得到的a是字节数组,均是ascii编码的数值,如果我想输入数字123,只能先使字节数组为
“1”“2”“3”“ENTER”的ascii码,“1”的ascii码是30,得到{30,31,32,10},然后把字节数组转成字符数组{‘1’,‘2’,‘3’};字符数组再转换成String字符串 “123”;再转成Integer对象,new Integer(String) ,最后使用Integer.intValue()方法把它转成数字。
实在是太麻烦了
大家有没有什么好方法?
[解决办法]
你用System.in构造一个ObjectInputStream,然后调用readInt试试看。
[解决办法]
用Integer.parseInt(String s)能少转化一步……
[解决办法]
可能因为Java本来就不适合做命令行程序的原因吧?不过java 1.5可以用Scanner,还是很方便的:
// 需import java.util.Scanner;Scanner scanner = new Scanner(System.in);scanner.nextInt(); // 读intscanner.nextDouble(); // 读doublescanner.nextLine(); // 读一行
[解决办法]
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//读取数据速度快
[解决办法]