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"))
描述可能会有所帮助: