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()