2016-02-28 89 views
1

有沒有一種方法可以與文本文件中的字符串進行比較,因爲它們在不同的行上?這是我比較第一行和第二行的方式。但是,如果我想將第一行與第八行進行比較,第二行與第九行進行比較,我將如何做到這一點等等。對不起,如果之前已經詢問過,但是在搜索時我找不到任何東西。如何比較從文本文件中讀取單獨行時的字符串

if(kb.hasNext()){ 
    String in = kb.nextLine(); 
    String two = kb.nextLine(); 
} 

輸入例:

1 2 3 4 5 6 7 
2 1 3 4 5 6 7 
3 1 2 4 5 6 7 
4 1 2 3 5 6 7 
5 1 2 3 4 6 7 
6 1 2 3 4 5 7 
7 1 2 3 4 5 6 
1 2 3 4 5 6 7 
2 1 3 4 5 6 7 
3 1 2 4 5 6 7 
4 1 2 3 5 6 7 
5 1 2 3 4 6 7 
6 1 2 3 4 5 7 
7 1 2 3 4 5 6    

我編碼在Java中。感謝任何想法。

+0

你首先,必須全部閱讀。 – Makoto

+0

會做。謝謝 –

回答

5

我覺得這是更好地讀取整個文件中像

List <String> listOfFileEntries=new ArrayList<>(); 
while(kb.hasNext()) { 
      listOfFileEntries.add(kb.nextLine()); 
    } 

而且比你可以從ArrayList中比較行。要獲得數行我,只寫listOfFileEntries.get(i)

+0

好的,這是有道理的。我會嘗試的。謝謝 –

+0

歡迎您 – 2016-02-28 17:43:09

+0

我正在閱讀Java API,.get()只返回列表中指定位置的元素。 我不認爲它會工作,如果我想返回第8行的所有元素。 我有整個文件讀入,但只是混淆我怎麼能說 比較第1行到第8行。任何其他想法將不勝感激。 –

1

如果輸入數據不是很大,則可以將其加載到內存:

List<String> lines = new ArrayList<>(); 

final FileReader fileReader = new FileReader("somefile.txt"); 
final BufferedReader bufferedReader = new BufferedReader(fileReader); 

String line; 
while((line = bufferedReader.readLine()) != null) { 
    lines.add(line);    
} 

,然後用程序拆分,正則表達式等

相關問題