java控制台输入

java控制台输入,java,Java,通过控制台输入的任何数据类型(正如我使用BufferedReader类所做的)都是字符串。之后,我们将其转换为重新查询的数据类型(如integer的Inter.parseInt())。但在C中,我们可以接受任何基元数据类型的输入,而在java中,所有输入类型都必须是字符串。为什么会这样???在java中,您可以做: Scanner scan = new Scanner(System.in); scan.nextInt(); scan.nextDouble(); 等等。您只需要确保下一个输入是正

通过控制台输入的任何数据类型(正如我使用BufferedReader类所做的)都是字符串。之后,我们将其转换为重新查询的数据类型(如integer的Inter.parseInt())。但在C中,我们可以接受任何基元数据类型的输入,而在java中,所有输入类型都必须是字符串。为什么会这样???

在java中,您可以做:

Scanner scan = new Scanner(System.in);
scan.nextInt();
scan.nextDouble();
等等。您只需要确保下一个输入是正确的


编辑:缺少缓冲读取器部分。我认为这个答案是完全不可逆的。

控制台输入实际上是作为一系列字节而不是字符串读入的。这是因为API将
System.in
公开为
InputStream
。JDK1.5之前的典型包装(为
扫描器
类欢呼!)类似于:

BufferedReader-in=新的BufferedReader(新的InputStreamReader(System.in))

i、 e.
InputStreamReader
将字节流转换为字符流,然后使用
BufferedReader
执行
readLine()
操作或其他操作


因此,它是一个
字符串
输出,因为您从
缓冲读取器
中获得了字符流的缓冲输出。我的意思是问,为什么输入默认为字符串数据类型……为什么不是其他。java风格的输入与C相比有什么好处,因为我们可以方便地输入所有原始数据types@Bipul像webdestroya我之前说过,java就是这样工作的。我敢肯定,当您在命令提示符中输入值时,java会将这些值识别为字符串而不是原语,这是为了保持它的简单性,而不是在尝试扫描它之前试图找出它是什么。Java让用户知道输入是什么。很抱歉回复不满意,因为我不太确定我刚才说的话。我同意你的看法,java这样做是为了让事情更简单,让用户自己决定。谢谢