到目前为止,我一直在使用Scanner对象接收输入,并想了解BufferedReader的工作原理。我试过了,它似乎只适用于Strings。有人可以告诉我如何使用它与int和double?并且你如何在同一行上要求两个String输入?感谢。
答案 0 :(得分:7)
将BufferedReader
和Scanner
视为处于不同的抽象层次,而不是“做同样事情”的可互换部分。我认为这是你陷入困境的根本问题。
BufferedReader
在某种意义上比Scanner
“更简单”。 BufferedReader
只是阅读String
。
Scanner
比BufferedReader
强大得多。它具有API,可以轻松提取各种类型的对象。
我可以想象使用Scanner
作为底层构建块编写BufferedReader
。而使用Scanner
来编写BufferedReader
就好像用大锤杀死一只蚂蚁。
答案 1 :(得分:2)
是的,bufferedreader将只使用字符串。你需要使用Integer.parseInt(value)或Double.parseDouble(value)将它们转换为int或double。
答案 2 :(得分:1)
BufferedReader基本上将输入流作为参数。
您必须使用内置方法将字符串解析为ints and doubles
。
喜欢:
BufferedReader br = new BufferedReader(new FileReader("input1.txt"))
String line = br.readLine();
//more logic here
int number = Integer.parseInt(brstring);
double number = Double.parseDouble(brstring);