为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 if 条件中的 equals() 允许所有内容?

为什么 if 条件中的 equals() 允许所有内容?

宝慕林4294392 2021-10-13 15:46:22
我的任务是创建函数,如果字符串参数包含 1,2 或 3 个“e”字符,则返回 true,需要 for 循环。看起来 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 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

删除 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);

}


查看完整回答
反对 回复 2021-10-13
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

你有一个额外的分号“;” 在 if 语句上,所以如果它为真并且计数总是上升,则不会发生任何事情


改变


 if (sLetter.equals("e"));

 {

   count++;

 }


 if (sLetter.equals("e")) {

   count++;

 }

你也可以通过做来简化逻辑


if (letter == 'e') {

   count++;

}


查看完整回答
反对 回复 2021-10-13
  • 2 回答
  • 0 关注
  • 203 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信