java控制台输入
问题描述:
任何通过控制台输入(如我使用BufferedReader类)的数据类型是String.After我们类型转换为重新请求的数据类型(Inter.parseInt()为整数)。但在C我们可以接受任何原始数据类型的输入,而在java中,所有输入类型都是坏字符串。为什么它是这样的?java控制台输入
答
控制台输入实际上是作为一系列字节读入的,而不是字符串。这是因为System.in
被API公开为InputStream
。 (!万岁的Scanner
类)JDK1.5之前,典型的包装是一样的东西:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
即InputStreamReader
字节流转换为字符流,然后BufferedReader
是用来做你readLine()
操作,管他呢。
所以这是一个String
输出,因为你从BufferedReader
获取字符流的缓冲输出。
答
在java中,你可以这样做:
Scanner scan = new Scanner(System.in);
scan.nextInt();
scan.nextDouble();
等你只需要确保下一个输入是正确的。
编辑:错过了缓冲的阅读器部分。我认为这个答案是完全不相信的。
我的意思是问为什么输入是默认的字符串数据类型....为什么不other.java样式输入的优点比C我们有设施输入所有原始数据类型 – condinya 2010-05-25 04:51:55
@Bipul像webdestroya说在我之前,这只是Java的工作原理。我敢肯定,当你在命令提示符中输入值时,为了简单起见,java将它们识别为字符串而不是原语,而不是在试图扫描它之前试图弄清楚它是什么。Java离开它由用户知道输入是什么。 对不满意的答复,因为我不是很确定我刚才所说的。 – exodrifter 2010-05-25 04:58:10
我同意你说java是为了使事情变得简单而让它给用户决定。谢谢 – condinya 2010-05-25 05:06:44