2015-03-02 2 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 (сканер, 'с'));

бы вернуть все слова в текстовом файле с характером с

+0

Почему вы хотите использовать рекурсию здесь? Простой цикл имеет больше смысла. – Zhedar

+2

1-й почему рекурсия? 2nd не является более логичным 'return words + getWordsString (theFile, theC);' ?? –

+0

Ну, вы игнорируете возвращенные «слова» рекурсивных вызовов. Что вы ожидаете? – Tom

ответ

2

Вы просто бросанием значения words прочь!

Это должно сохранить значение и сцепить его со следующим значением

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

Спасибо, это идеальный ответ. Я просто изучаю рекурсию, поэтому я не совсем понял, что делаю. – user1920076

+0

Это не идеальный ответ. Это всего лишь ответ, и я надеюсь, что это вам поможет: D Если да, то отметьте его как правильный ответ, спасибо –

Смежные вопросы