Java 价值比较让我困惑,不能正常工作

Java 价值比较让我困惑,不能正常工作,java,jakarta-ee,Java,Jakarta Ee,我在比较两个字符串,显然它们不相等,但它们是相等的。我想知道是什么问题导致了这种情况,可能是数据类型,我看不到的隐藏内容,或者是什么。任何输入都可能有帮助。谢谢。字符串/对象比较应使用equals(),而不是=(字符串文字比较除外) 例如: if(string.equals(string2)){ } =检查引用相等,equals()检查内容相等。阅读此内容。字符串/对象比较应使用equals(),而不是=(字符串文字比较除外) 例如: if(string.equals(string2)){ }


我在比较两个字符串,显然它们不相等,但它们是相等的。我想知道是什么问题导致了这种情况,可能是数据类型,我看不到的隐藏内容,或者是什么。任何输入都可能有帮助。谢谢。

字符串/对象比较应使用
equals()
,而不是
=
(字符串文字比较除外)

例如:

if(string.equals(string2)){
}

=
检查引用相等,
equals()
检查内容相等。阅读此内容。

字符串/对象比较应使用
equals()
,而不是
=
(字符串文字比较除外)

例如:

if(string.equals(string2)){
}
=
检查引用相等,
equals()
检查内容相等。阅读此内容。

使用
.equals()
方法检查字符串相等性
字段1.equals(“formDateCreated”)
=
运算符只检查两个引用变量是否引用同一个字符串实例
equals()
方法检查两个字符串是否有意义地相等。

使用
.equals()
方法检查字符串是否相等,如
字段1.equals(“formDateCreated”)
equalsIgnoreCase(String anotherString)
=
运算符只检查两个引用变量是否引用同一个字符串实例
equals()
方法检查两个字符串是否有意义地相等

equalsIgnoreCase(String anotherString)
当你不考虑情况的时候。如果字符串内容与引用内容不相等,则进行此检查==

我建议你像下面那样检查一下

"formDateCreated".equalsIgnoreCase(field)
因此,它可以帮助您克服可能的NullPointerException

field.trim().equalsIgnoreCase("formDateCreated")
当你不考虑情况的时候。如果字符串内容与引用内容不相等,则进行此检查==

我建议你像下面那样检查一下

"formDateCreated".equalsIgnoreCase(field)
因此,它可以帮助您克服可能的NullPointerException

field.trim().equalsIgnoreCase("formDateCreated")
试试这个。 String trim()方法返回字符串的副本,并省略前导和尾随空格

试试这个。
String trim()方法返回字符串的一个副本,并省略前导和尾随空格。

您没有进行值比较;
=
操作符应用于对象时会进行引用比较-只有当它们是完全相同的对象时才会返回true;
=
运算符应用于对象时会进行引用比较-仅当它们是完全相同的对象时,才会返回true。除此之外:==检查对对象的引用是否相等,.equals()检查字符序列是否相等谢谢大家。对于C++还是java特定的这是真的吗?@ USE1582440:不知道C++,但它在java中是正确的,在NETPersonally中不是真的。即使在java中比较字符串字时,我也避免使用<代码> = = /CODE >,以防其中一个停止为文字。检查字符序列是否相等谢谢大家。对于C++还是java特定的这是真的吗?@ USE1582440:不知道C++,但在java中是正确的,NETPersonally是不正确的。即使在java中比较字符串字时,我也避免使用<代码> = = /CODE >,以防其中一个停止为文字。“FrimeDeCurrar”。我知道,但用户1582340可能因此出现问题。请注意,没有修剪问题。但是你不需要修剪()这个“formDateCreated”“formDateCreated”。修剪()这里不需要修剪,因为这里没有空格是的,我知道,但可能是用户1582340因此遇到问题。没有修剪请注意问题。但是您不需要修剪()这个“formDateCreated”