Java使用charAt()和| |运算符
我在检查我的字符串中是否有辅音。 我得到的错误是:“运算符| |不能应用于‘boolean’,‘char’” 这是我的密码: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
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;ibezeichnung.charAt(i)='b'| | bezeichnung.charAt(i)='c'
等。由于无法链接OR运算符,因此最好创建一个包含所有可用字符的数组(或集合),并测试您的集合/数组是否实际包含此字符表达式bezeichnung.charAt(i)=='b'
被操作为布尔值,所有其他表达式都是字符。这就是它的给出错误的原因。“bcdfghjklmnpnpqrstvwxyz”.contains(bezeichung.charAt(i))
将不会编译,因为字符(或字符
)都不是字符序列
@JacobG。然后”。indexOf(char)>=0
。