0

有人见过以下语句运行错误吗?

String BloodyHell = "Unbelievable";
if (BloodyHell == BloodyHell) >> false

尽管我得到的不是该死的地狱,而是​​:|-,-|or |o,-|or |-,o|or |o,o|or XXXX

不过,这些都不是真的。虽然调试确切的东西仍然是错误的。

有人请在这里帮助我。这是片段:

public String doStats()
{       
        String[] pattern = splitPattern();          
        for (int i = 0; i < pattern.length; i++)
        {
            if (pattern[i] == "|-,-|")
                frontClosed++;
            if (pattern[i] == "|o,-|")
                left++;
            if (pattern[i] == "|-,o|")
                right++;
            if (pattern[i] == "|o,o|")
                frontOpened++;
            if (pattern[i] == "XXXX")
                noFace++;           
        }
}

在此处输入图像描述

4

2 回答 2

3

在 Java 中,您应该使用String#equals方法来比较字符串值,而不是==. 运算符比较==对象引用以查看它们是否是同一个对象,这就是您不断获取false. 对象引用是不同的,即使字符串的内容是等价的。

if (pattern[i].equals("|-,-|"))
于 2013-04-10T00:16:59.107 回答
3

之间有区别==equals()

比较字符串时,您想使用equals(); ==用于比较它们在内存中是否相同。

于 2013-04-10T00:17:26.903 回答