首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较字符字符?

如何比较字符字符?
EN

Stack Overflow用户
提问于 2018-06-15 03:36:36
回答 1查看 147关注 0票数 0

为什么这段Java代码不能工作?如何将像||$$这样的逻辑比较添加到if语句中的字符类型:

代码语言:javascript
复制
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");
    }

}
EN

回答 1

Stack Overflow用户

发布于 2018-06-15 04:23:19

您不能将两个char之间的||运算符指定为表示此字符或此处尝试的另一个字符:

代码语言:javascript
复制
if ((txt.charAt(i)) == ('a'||'b')) { ...}

||是必须放在两个布尔表达式之间的逻辑OR,如下所示:

代码语言:javascript
复制
if (txt.charAt(i) == 'a' || txt.charAt(i) == 'b'){
   ...
}

The Operators tutorial是总结Java语言中运算符(本质上是关于它们的描述和优先级)的一个非常好的参考资料。

为了避免重复,你可以引入一个局部变量:

代码语言:javascript
复制
char c = txt.charAt(i);
if (c  == 'a' || c == 'b'){
   ...
}

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

代码语言:javascript
复制
if (Arrays.asList('a', 'b', 'c').contains(txt.charAt(i)){
   ...
}

为了提高性能(如果您有许多有效的字符),您可以使用Set

代码语言:javascript
复制
if (new HashSet<>(Arrays.asList('a', 'b', 'c')).contains(txt.charAt(i)){
   ...
}

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50864702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档