在Android中的“IF STATEMENT”中表现得非常奇怪

时间:2013-04-10 00:15:09

标签: java android loops if-statement

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

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

虽然不是血腥地狱,但我得到的是:|-,-||o,-||-,o||o,o|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++;           
        }
}

enter image description here

2 个答案:

答案 0 :(得分:3)

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

if (pattern[i].equals("|-,-|"))

答案 1 :(得分:3)

==equals()之间存在差异。

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