2013-02-26 111 views
1

我可以請您指導我如何完成此問題? 我需要將inputWord與.txt文件中的字符串進行比較,如果找到,則返回整行,但如果沒有,則顯示「找不到字」。Android - 比較文本文件中的字符串輸入內容

例子:

inputWord: abacus 

Text file content: 
abaca - n. large herbaceous Asian plant of the banana family. 
aback - adv. archaic towards or situated to the rear. 
abacus - n. a frame with rows of wires or grooves along which beads are slid, used for calculating. 
... 
so on 

Returns: abacus with its definition 

什麼,我要做的是在之前我inputWord比較的話「 - 」(連字符作爲分隔符),如果他們不匹配,移動到下一行。如果它們匹配,則複製整行。

我希望它不像我問你「做我的作業」,但我嘗試了圍繞不同的論壇和網站的教程。我也閱讀java文檔,但我真的不能把它們放在一起來完成這一點。

預先感謝您!

UPDATE:

這裏是我當前的代碼:

if(enhancedStem.startsWith("a")) 
       { 
        InputStream inputStream = getResources().openRawResource(R.raw.definitiona); 
        try { 
         BufferedReader in = new BufferedReader(new InputStreamReader(inputStream)); 
         String s = in.readLine(); 
         String delimiter = " - "; 
         String del[]; 
         while(s != null) 
         { 
          s = in.readLine(); 
          del = s.split(delimiter); 
          if (enhancedStem.equals(del[0])) 
          { 
           in.close(); 
           databaseOutput.setText(s); 
           break; 
          } 
         } 
         in.close(); 
         } 
        catch (FileNotFoundException e) { 
         databaseOutput.setText("" + e); 
        } 
        catch (IOException e1) { 
         databaseOutput.setText("" + e1); 
        } 
       } 

非常感謝!這是我想出來的,並且它正確地返回輸入的定義,但問題是,當我輸入文本文件中找不到的單詞時,應用程序崩潰。口頭禪似乎不起作用。有什麼想法我可以陷入它? logcat中說,在4342線,其NullPointerExcepetion是

s = in.readLine(); 

回答

2

假設在文本文件中的每一行的格式是統一的。這可以通過以下方式完成:

1)逐行讀取文件。

2)根據分隔符分割每一行,並在temp字符串數組中收集拆分字符串標記。

3)temp標記數組中的第一項將是「 - 」號之前的單詞。

4)將temp數組中的第一項與搜索字符串進行比較,如果匹配,則返回整行。

下面的代碼可以在一個功能被豎起來實現這一點:

String delimiter = "-"; 
String[] temp; 
String searchString = "abacus"; 

BufferedReader in = new BufferedReader(new FileReader(file)); 

while (in.readLine() != null) { 
    String s = in.readLine(); 

    temp = s.split(delimiter); 

    if(searchString.equals(temp[0])) { 
     in.close(); 
     return s; 
    } 
} 

in.close(); 
return ("Word not found"); 

希望這有助於。

+0

嗨!非常感謝你的回覆。我會盡快回到這個代碼:) – 2013-02-26 04:38:20

+0

我得到一個錯誤,說:java.io.FileNotFoundException::打開失敗:ENOENT(no這樣的文件或目錄) 我試圖把這些到位 「文件」 的: 「C:\\ \\工作區原\\ \\ definitiona.txt」 和 「\\ \\資源\\原料definitiona。 txt「 但都表示找不到。 – 2013-02-26 04:58:44

+0

嘗試從「C:\\ workspace \\ raw \\ definitiona」中刪除多餘的\\。TXT \\」應該工作。 – 2013-02-26 05:29:16

0

,你可以嘗試這樣的:

myreader = new BufferedReader(new FileReader(file)); 
String text = "MyInput Word"; 

while(!((text.equals(reader.readLine())).equals("0"))); 
+0

嗨!謝謝。我會嘗試如果這個工作很快,我回家。 – 2013-02-26 04:51:42

+0

我一直有問題filereader的路徑。即使我輸入了我的文本文件的確切路徑,它也找不到我的目錄。 :( – 2013-02-26 14:32:17