2015-03-02 122 views
0

我創建了這個方法,但它只返回我的txt文件中的第一個單詞。我需要的方法遞歸遍歷我的整個文本文件,並返回任何單詞與傳遞參數'theC',並忽略單詞'theC' 任何幫助將不勝感激,謝謝。遞歸從.txt文件中讀取Java

public static String getWordsString(Scanner theFile, char theC) 
{ 
    String words = ""; 

    if(theFile.hasNext()) 
    { 
    String word = theFile.next(); 
    if(word.indexOf(theC) != -1) 
    { 
     words += word; 
    } 
    getWordsString(theFile, theC); 
    } 
    return words; 
} 

例如:System.out.println(getWordsString(scanner,'c'));

將在txt文件與字符返回任何字c

+0

你爲什麼要在這裏使用遞歸拼接呢?一個簡單的循環更有意義。 – Zhedar 2015-03-02 21:03:59

+2

第一爲什麼遞歸? 2nd不是更合乎邏輯的'return words + getWordsString(theFile,theC);'' – 2015-03-02 21:05:14

+0

那麼,你忽略了遞歸調用的返回「單詞」。你能指望什麼? – Tom 2015-03-02 21:05:55

回答

2

你只是拋出的words遠的價值!

這應該保留的價值,並與下一個值

return words + getWordsString(theFile, theC); 
+0

謝謝,這是最完美的答案。我只是學習遞歸,所以我不太明白我在做什麼。 – user1920076 2015-03-02 21:10:36

+0

這不是完美的答案,這只是一個答案,我希望它可以幫助你:D 如果是,那麼請將它標記爲正確答案,謝謝 – 2015-03-02 21:14:53