为什么在条件允许的情况下equals()进入?

时间:2018-09-26 20:38:20

标签: java

我的任务是创建一个函数,如果字符串参数包含1,2或3个“ e”字符,则返回true,需要循环。看起来equals()方法传入所有内容,并且无论是否sLetter =“ e”都增加计数器。也许问题出在其他地方?

static boolean checkLetter (String paramOne){
    int count = 0;
    for (int i = 0; i <= paramOne.length() - 1; i++) {
        char letter = paramOne.charAt(i);
        String sLetter = Character.toString(letter);

        if (sLetter.equals("e"));
        {
            count++;
        }
    }

    System.out.print((count >= 1) && (count <= 3));
    return (count >= 1) && (count <= 3);
}

2 个答案:

答案 0 :(得分:-1)

从if语句的末尾删除分号。

static boolean checkLetter (String paramOne){
    int count = 0;
    for (int i = 0; i <= paramOne.length() - 1; i++) {
        char letter = paramOne.charAt(i);
        String sLetter = Character.toString(letter);

        if (sLetter.equals("e"))
        {
            count++;
        }
    }

    System.out.print((count >= 1) && (count <= 3));
    return (count >= 1) && (count <= 3);
}

答案 1 :(得分:-1)

您有一个多余的分号“;”在if语句上,因此如果它为true并且计数总是增加,则什么也不会发生

更改

 if (sLetter.equals("e"));
 {
   count++;
 }

 if (sLetter.equals("e")) {
   count++;
 }

您还可以通过这样做简化逻辑

if (letter == 'e') {
   count++;
}