【问题标题】:incompatible types char and boolean不兼容的类型 char 和 boolean
【发布时间】: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


【解决方案1】:

因为只能在两个元素之间进行比较,所以如果你想添加一个额外的元素,你必须使用运算符 && 或 || 欲了解更多信息:

https://libguides.mit.edu/c.php?g=175963&p=1158594

【讨论】:

    猜你喜欢
    • 2013-08-21
    • 2013-01-10
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多