如何比较字符?

时间:2018-06-14 19:36:36

标签: java char logical-operators

为什么这个Java代码不起作用? 如何在||语句中添加$$if之类的逻辑比较来键入char:

System.out.println("Type Text");
txt = ms.next();
size = txt.length();

for (int i = 0; i < size; i++) {

    if ((txt.charAt(i)) == ('a'||'b')) {
        System.out.println("is the letter A or B");
    }

}

1 个答案:

答案 0 :(得分:3)

您不能在两个nodeJS之间指定||运算符来表示此字符,或者在此处尝试此另一个字符:

char

if ((txt.charAt(i)) == ('a'||'b')) { ...} 是一个逻辑OR,必须放在两个布尔表达式之间,例如:

||

The Operators tutorial是一个非常好的参考,用于总结Java中的运算符(主要是关于它们的描述和优先级)。
为避免重复,您可以引入一个局部变量:

if (txt.charAt(i) == 'a' || txt.charAt(i) == 'b'){
   ...
}

要指定更多逻辑OR,使用包含有效字符的集合是一种有趣的可能性:

char c = txt.charAt(i);
if (c  == 'a' || c == 'b'){
   ...
}

要提高效果(如果您有许多有效字符),可以使用if (Arrays.asList('a', 'b', 'c').contains(txt.charAt(i)){ ... }

Set

如果必须多次使用条件语句,则实例化集合一次更好。