2016-04-16 3 views
0

Я немного Java noob, поэтому любая помощь приветствуется. У меня есть метод, который должен принимать значение char и Arraylist слов в алфавитном порядке и возвращать все строки в списке, начинающиеся с той же буквы, что и char. Я не получаю сообщений об ошибках, но мой метод продолжает возвращать пустой ArrayList. Почему мой список не заполнен?ArrayList не заполняется

public String singlePhrase(char c, ArrayList<String> wordList){ 

    ArrayList<String> words = new ArrayList<String>();  
    for (int i = 0; i < wordList.size(); i++) { 
    if (wordList.get(i).charAt(0) == c){ 
     words.add(wordList.get(i)); 
    } 
    } 

    return "Size: "+words.size() + " "+c;    
} 
+1

Приведите пример значений в 'wordList'. За какое значение вы пытаетесь? –

+2

Я предполагаю, что ни одно из ваших слов wordList не начинается с переменной c char. – ManoDestra

+0

В коде нет ничего плохого. Проверьте слова в 'wordList'. Если вообще есть какое-либо слово, которое начинается с отправленного вами символа, он определенно сообщает. –

ответ

1

Если вы хотите, чтобы возвращать ArrayList слов используйте следующее:

public ArrayList<String> singlePhrase(char c, ArrayList<String> wordList) { 
    ArrayList<String> words = new ArrayList<String>(); 
    for (int i = 0; i < wordList.size(); i++) { 
     if (Character.toLowerCase(wordList.get(i).charAt(0)) == Character.toLowerCase(c)) { 
      words.add(wordList.get(i)); 
     } 
    } 
    return words; 
} 

Обратите внимание, что он сравнивает строчную версии обоих персонажей.

+0

Это был ранее метод, но я изменил его, чтобы показать, что массив пуст до конца метода. Когда я запускаю это, он возвращает три пустых массива ArrayLists следующим образом: [], [], [] –

0

Спасибо, ребята, за помощь, но ответ был слишком простым. В файле .txt, который обрабатывался, все строки начинались с прописных букв. Тестовый ввод был все строчным, в результате «==» было ложным, а оператор if() никогда не запускался.

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