Java 与扫描仪相比,使用bufferedReader读取输入(System.in)

Java 与扫描仪相比,使用bufferedReader读取输入(System.in),java,bufferedreader,Java,Bufferedreader,我使用bufferedReader阅读某处内容比使用扫描仪读取输入要快得多。这将有助于完成编码问题,如DMOJ上可用的问题(有时间限制)。如何使用bufferedReader读取int和字符串的输入 我目前的方法是: Scanner input = new Scanner (System.in); //initializing scanner String ____ = input.nextLine(); //reading a string input in

我使用bufferedReader阅读某处内容比使用扫描仪读取输入要快得多。这将有助于完成编码问题,如DMOJ上可用的问题(有时间限制)。如何使用bufferedReader读取int和字符串的输入

我目前的方法是:

Scanner input = new Scanner (System.in);     //initializing scanner

String ____ = input.nextLine();              //reading a string input
int ____ = input.nextInt();                  //reading an int input
像这样

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter your name: ");

String name = reader.readLine();
System.out.println("Your name is: " + name);
您需要根据预期接收的输入类型手动转换它们


Ex:对于
int
您可以
Integer.parseInt(inputValue)

从键盘输入读取数据时不会获得时间优势。这是“快速”的一部分:
BufferedReader
不会这样做。您将得到一整行,然后用
split()
将其放大,然后转换需要转换的任何部分(
Integer.parseInt()
等等)。被“缓冲”有它的魅力,但你也可以用流来实现,把它包装成
BufferedInputStream
@PM77-1,程序将从在线法官那里读取输入,这样我就不会自己输入。@tevemadar我将研究BufferedInputStream的性能。性能将由您解决问题的代码决定,而不是由输入的I/O决定。强制转换不会有任何好处。对象仍然是
字符串
。你不能把它扔给任何东西。对不起,伙计。我的意思是转换,但提到了铸造。我的错。谢谢你指出这一点。修正了我的答案。