2013-03-16 57 views
0

所以我的代碼的Java分裂讀線成字符串,然後使用它們

public void reply(){ 
    String fileName = "readLog.txt"; 
    String line = null; 
    try { 
     FileReader fileReader = 
      new FileReader(fileName); 

     BufferedReader bufferedReader = 
      new BufferedReader(fileReader); 

     while((line = bufferedReader.readLine()) != null) { 
      Output.append(line);//output is name of textarea 
     } 
     bufferedReader.close();   
    } 
    catch(FileNotFoundException ex) { 
     System.out.println(
      "Unable to open file '" + 
      fileName + "'");     
    } 
    catch(IOException ex) { 
     System.out.println(
      "Error reading file '" 
      + fileName + "'");     
    }     
    } 

,並讀出的是在文本文件不錯,但我希望它讀 說1號線,並在線路1我會是這樣的:

的一個問題 - 一個答案

,我想它,所以它可以將線路中的正確的地方,例如

if(「Input」==「A Question」){somethinghappends(); }

我知道那不是你將如何設置一個if語句的字符串,它只是一個例子。

我該如何去做這件事? (香港專業教育學院環顧四周互聯網,並沒有發現多大用處)

+0

什麼是在readLog.txt中? – BlackJoker 2013-03-16 11:19:57

+0

我目前還沒有在那裏得到很多,但例如,我會把「你叫什麼名字 - 我的名字是鮑勃」 – 2013-03-16 11:22:37

回答

1

您可以使用String.split()

while((line = bufferedReader.readLine()) != null) { 
    String[] parts = line.split("-"); 

    if (parts.length >= 2 && parts[0].trim().equals(parts[1].trim())) { 
     doSomethingHere(); 
    } 
} 

我也用String.trim()比較之前去除周圍的問題,答案開頭和結尾的空格。

2

如果你的格式是:

一個問題 - 一個答案,

你可以這樣做:

String[] parts = line.split(" - "); 
String question = parts[0]; 
String answer = parts[1]; 

考慮到破折號是分隔符。這是一個循環,讀取每一行。

+0

好吧,但我怎麼得到它,所以它只讀一行,因爲目前它讀取在文本文件中的一切? – 2013-03-16 11:30:13

0

您可以使用bufferedreader.readline()方法從流中讀取,直到找到所需的行。獲取數據和過程。您可以使用equals()方法進行比較。你最終可以使用split()分割你的字符串,並將它存儲在數組中。

1

所以你有一個問題的字符串,並希望找到適合答案在readLog中。

最好的辦法是將您的答案分解爲「 - 」。 (一個更好的分隔符將是「\ t」,因爲「 - 」也可以是問題/答案的一部分。)

String q="question"; 
String qa="question - answer"; 
String[] split = qa.split(" - "); 
if(split[0].equals(q)){ 
    do something; 
} 
相關問題