【发布时间】:2011-07-14 06:23:09
【问题描述】:
我正在使用 JSP 中的 Java 代码,我正在尝试比较字符串,但我遇到了问题。
我已经声明了两个字符串
s1 = "din";
s2 = "din";
但是,if (s1 == s2) 永远不会执行。有人可以帮我吗?
【问题讨论】:
-
请出示您的实际代码。你在使用小脚本吗? (请不要)
-
在某些 JVM 上这实际上会起作用,因为它们会保留所有字符串常量。
-
您应该使用 .equals 来比较相等性(正如其他人所提到的)。但是,请注意,在您给出的示例中 (s1 == s2) 通常等于 true,因为字符串文字将被保留(s1 和 s2 将引用同一个对象)
-
什么意思:“从不执行”?
-
@Neil:不是在“某些 JVM”上,而是在所有方面,因为语言规范规定了这一点。 (我认为在 dins 代码中实际上没有字符串文字。)