java - Android 中 "IF STATEMENT"的行为非常奇怪

标签 java android loops if-statement

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

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

虽然我没有得到该死的 hell ,但得到的是:|-,-||o,-||-,o||o,o|XXXX .

但这些都不是真的。在调试时,确切的情况仍然是错误的。

请有人帮帮我。这是 fragment :

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

最佳答案

在 Java 中,您应该使用 String#equals方法来比较字符串值而不是 ==== 运算符比较对象引用以查看它们是否是同一个对象,这就是为什么您不断得到 false 的结果。即使字符串的内容相同,对象引用也是不同的。

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

关于java - Android 中 "IF STATEMENT"的行为非常奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15914795/

相关文章:

java - DefaultTableModel 突出显示单击的单元格

Java 系统范围的键盘快捷键

java - libgdxcamera.rotateAround后的固定点

android - 使用 TextView 显示表情符号

javascript - 在javascript中完成一个递归函数

Javascript - 显示 18 张图像然后停止

java - android中将执行切换到主线程

java - 使用 Java 覆盖 Android 手机上的默认位置

r - 使用 R 循环下载文件并重命名

java - Android应用程序传递数据时出错