0

最近我修改了我的代码

  • Scanner在从 STDIN 输入输入时,我从BufferedInputStream.
  • 我还阅读了BufferedReaderwhich 从 any 获取输入InputStreamReader。这InputStreamReader可以用于System.in接受STDIN输入。
  • BufferedInputStreamhasread()方法,还需要根据objective进行解析。

在我的情况下,首先我需要将一个整数(比如说 n)作为输入,STDIN然后 afor loop将 n 个字符串作为输入。这些字符串最多有 1,00,000 个字符。

问题是:其中哪一个对我Scanner的目标表现更好?BufferedInputStreamBufferedReader

4

2 回答 2

2

Scanner 旨在简化用户在运行时接受输入参数。这是scanf()/getc()/cin 的java 等价物。'Reader' 用于读取字符数据,'Stream' 用于读取流数据。扫描仪最适合您的目的。因为它易于编码和使用。

于 2012-03-28T08:17:34.027 回答
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()
于 2012-10-06T17:42:34.513 回答