【发布时间】:2021-12-08 06:29:38
【问题描述】:
我正在编写一个代码,我试图在其中比较字符串中的两个字符。原来我有这个
boolean doubleX(String str) {
boolean n = false;
if (str.length() < 2) {
n = false;
} else {
for (int i = 0; i < 2; i++) {
String sub = str.substring(0, 2);
char a = sub.charAt(i);
char b = sub.charAt(i + 1);
if (a == b == 'x') {
n = true;
}
}
}
return n;
}
它给我的错误是“无与伦比的类型:布尔值和字符”。这是它有问题的行:
if (a == b == 'x')
所以我改成
if (a=='x' && a == b)
第二种写法奏效了。为什么我能够使用第二个语句而不是第一个语句? 谢谢!
【问题讨论】:
-
第一个表达式被解析为
(a == b) == 'x',其中(a == b)返回一个boolean。 -
为了您的阅读,我建议您查看operator precedence。
标签: java