2016-04-16 14 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

これは以前の方法ですが、メソッドの最後まで配列が空であることを示すために変更しました。私がそれを実行すると、次のような3つの空のArrayListが返されます:[]、[]、[] –

0

皆さん、助けてくれてありがとうございますが、答えは簡単すぎました。解析中の.txtファイルでは、すべての文字列が大文字で始まりました。テスト入力はすべて小文字だったので、 '=='はfalseで、if()文は決してトリガされませんでした。

関連する問題