我正在学习如何使用Lists,在我的下面的例子中,switch case工作但是(我认为)等效的if语句没有。你能告诉我为什么吗?
public class Kapitel14 {
public static void main(String[] args) {
ArrayList<String> testList = new ArrayList<String>();
testList.add("Cousin");
testList.add("Doof");
testList.add("Dorf");
testList.add("Dortmund");
testList.add("Franz");
System.out.println(listCount(testList));
}
public static int listCount(ArrayList<String> newList) {
int capDCounter = 0;
for (String element : newList) {
String firstLetter = Character.toString(element.charAt(0));
switch (firstLetter) {
case ("D"):
capDCounter++;
break;
default:
continue;
}
//if I use this instead it returns wrong results:
//if (firstLetter == "D")
// capDCounter++;
}
return capDCounter;
}
答案 0 :(得分:1)
使用
if (firstLetter.equals("D"))
capDCounter++;
而不是
if (firstLetter == "D")
capDCounter++;
此处应使用 .equals()
方法,因为您要比较字符串的值。