Java使用charAt()和| |运算符

Java使用charAt()和| |运算符,java,if-statement,Java,If Statement,我在检查我的字符串中是否有辅音。 我得到的错误是:“运算符| |不能应用于‘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 s

我在检查我的字符串中是否有辅音。 我得到的错误是:“运算符| |不能应用于‘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
       }
    }

for(int i=0;i如果要使用
| |
,需要完整地写出条件:

       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
       }
    }
if (bezeichnung.charAt(i) == 'b' || bezeichnung.charAt(i) == 'c'
    || bezeichnung.charAt(i) == 'd' ...
或者你可以找到一种更简洁的表达方式:

       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
       }
    }
if ("bcdfghjklmnpqrstvwxyz".indexOf(bezeichnung.charAt(i))>=0) {
   ...
}

保持代码的样式不变,您必须这样做

       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
       }
    }
   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
   }
}

对于(inti=0;i您可以使用正则表达式

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

for(inti=0;i您不能像那样使用OR运算符

       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
       }
    }
对于每个字符,必须分别检查条件

       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
       }
    }
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
       }
 }

for(int i=0;i
bezeichnung.charAt(i)='b'| | bezeichnung.charAt(i)='c'
等。由于无法链接OR运算符,因此最好创建一个包含所有可用字符的数组(或集合),并测试您的集合/数组是否实际包含此字符表达式
bezeichnung.charAt(i)=='b'
被操作为布尔值,所有其他表达式都是字符。这就是它的给出错误的原因。
“bcdfghjklmnpnpqrstvwxyz”.contains(bezeichung.charAt(i))
将不会编译,因为
字符(或
字符
)都不是
字符序列
@JacobG。然后
”。indexOf(char)>=0