为什么我的开关盒在这里工作,但如果没有?

时间:2018-04-20 11:57:41

标签: java if-statement arraylist switch-statement

我正在学习如何使用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;
}

1 个答案:

答案 0 :(得分:1)

使用

if (firstLetter.equals("D"))
             capDCounter++;

而不是

if (firstLetter == "D") 
          capDCounter++;
此处应使用

.equals()方法,因为您要比较字符串的值。