Java 如果块不能识别字符串

Java 如果块不能识别字符串,java,if-statement,Java,If Statement,这就是我的字符串数组的制作方法: 0 = 0 + 5 for(int i=0;i

这就是我的
字符串
数组的制作方法:

0
=
0
+
5
for(int i=0;i
因此,问题是,在
expArray[i]=“5”)
如果阻塞在顶部,它不会在
i=1
的位置进入。有什么原因/想法吗?

使用
=

    for (int i = 0; i< expArray.length; i++){
        if(varTable.get(expArray[i]) != null){
            expArray[i] =  Integer.toString((int) varTable.get(expArray[i]));
        }
    }
Use .equals() instead of == for String comparison!
==比较两个引用是否指向同一对象,这与您的情况不同。equals()检查实际字符串内容


有关字符串比较的详细说明,请查看此SO。

应使用
等于而不是
=

    for (int i = 0; i< expArray.length; i++){
        if(varTable.get(expArray[i]) != null){
            expArray[i] =  Integer.toString((int) varTable.get(expArray[i]));
        }
    }
Use .equals() instead of == for String comparison!

=
不适合比较字符串(任何对象,除非您知道它们是规范的)<代码>=
只是比较对象引用。equals()测试相等性。对于字符串,它们通常是相同的,但正如您所发现的,这并不能保证

在Java中,新手遇到的最常见错误之一是使用
==
来比较字符串。您必须记住,
=
比较的是对象引用,而不是内容


因此,使用
if(expArray[i].equals(“5”)

如果您有一个常量,请使用nullsafe检查

if(expArray[i].equals("5"))
描述可能会有所帮助: