0

最近我已经修改我的代码性能指标

  • 虽然采取输入形式STDIN,我搬离ScannerBufferedInputStream
  • 我也读了关于BufferedReader,它采取从任何InputStreamReader输入。这个InputStreamReader可以与System.in一起使用来输入STDIN输入。
  • BufferedInputStreamread()方法,这还需要根据目标进行解析。

对我来说,首先我需要一个整数(让说N)作为输入从STDIN后,一个for loop将采取N个字符串作为输入。这些字符串最多有100,000个字符。

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

+0

您是否尝试过每种方法?找出性能更好的最简单方法是编写原型程序并进行性能测试。 – beny23 2012-03-28 08:18:14

回答

2

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

1

我会在你的情况下使用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()