2015-03-02 183 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