最近我将代码修改为
Scanner
移至BufferedInputStream
。 BufferedReader
来自任何InputStreamReader
的输入。此InputStreamReader
可与System.in
一起用于STDIN
输入。BufferedInputStream
有read()
方法,需要根据目标进一步解析。 在我的情况下,首先我需要取一个整数(比方说n)作为来自STDIN
的输入,之后for loop
将n个字符串作为输入。这些字符串最多有1,00,000个字符。
问题是:Scanner
,BufferedInputStream
和BufferedReader
中的哪一个对我的目标有更好的表现?
答案 0 :(得分:2)
扫描仪旨在简化用户在运行时接受输入参数。这是java等效的scanf()/ getc()/ cin。 'Reader'用于读取字符数据,'Stream'用于流式数据。扫描仪最适合您的用途。因为它很容易编码和使用。
答案 1 :(得分:2)
我会在你的情况下使用BufferedReader。它会比Scanner快得多,因为你的字符串有很多字符。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//To get an integer
int N = Integer.parseInt(br.readLine());
//To get a string.
String line = br.readLine()