我有点像Java菜鸟,所以任何帮助都表示赞赏。我有一个方法,它应该按字母顺序取一个char值和一个单词的Arraylist,并返回列表中以char字母开头的所有字符串。我没有收到任何错误消息,但我的方法不断返回一个空的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;
}
答案 0 :(得分: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;
}
请注意,它会比较两个字符的小写版本。
答案 1 :(得分:0)
谢谢大家的帮助,但答案太简单了。在正在解析的.txt文件中,所有字符串都以大写字母开头。测试输入全部为小写,导致'=='为false,if()语句永远不会被触发。