Java使用charAt()和||操作者

时间:2018-04-18 14:21:10

标签: java if-statement

我试图检查我的String中是否有辅音。 我得到的错误是:"运营商||不能应用于' boolean',' char'" 这是我的代码:

       for(int i=0;i<8;i++){
       if(bezeichnung.charAt(i) == 'b'||'c'||'d'||'f'||'g'||'h'||'j'||'k'||'l'||'m'||'n'||'p'||'q'||'r'||'s'||'t'||'v'||'w'||'x'||'y'||'z'){
        //do something
       }
    }

4 个答案:

答案 0 :(得分:6)

如果您想使用||,则需要完整地写出条件:

if (bezeichnung.charAt(i) == 'b' || bezeichnung.charAt(i) == 'c'
    || bezeichnung.charAt(i) == 'd' ...

或者你可以找到一种更简洁地表达它的方法:

if ("bcdfghjklmnpqrstvwxyz".indexOf(bezeichnung.charAt(i))>=0) {
   ...
}

答案 1 :(得分:0)

保持代码与您拥有的风格相同,您必须

   for(int i=0;i<8;i++){
   if(bezeichnung.charAt(i) == 'b'|| bezeichnung.charAt(i) == 'c'||bezeichnung.charAt(i) =='d) // continue this for all your cases 
    //do something
   }
}

如果你必须有这么长的条件陈述 - 我会调查其他方法来完成你想要达到的任务

答案 2 :(得分:0)

您可以使用正则表达式。

for(int i=0;i<8;i++){
    String regex = ".*[a-zA-Z].*";
    if(bezeichnung.charAt(i).matches(regex)){
        //do something
    }
}

答案 3 :(得分:0)

你不能像这样使用OR运算符。

对于每个角色,您必须单独检查条件。

for(int i=0;i<8;i++)
{
       if(bezeichnung.charAt(i) == 'b' || bezeichnung.charAt(i) ==  'c' || bezeichnung.charAt(i) ==  'd' || bezeichnung.charAt(i) == 'f')
       {
          //do something
       }
 }