相关疑难解决方法(0)

如何比较Java中的字符串?

==到目前为止,我一直在我的程序中使用运算符来比较我的所有字符串.但是,我遇到了一个错误,将其中一个更改为了.equals(),并修复了该错误.

==坏?什么时候应该不应该使用它?有什么不同?

java string equality

726
推荐指数
23
解决办法
376万
查看次数

当""== s为假但"".equals(s)为真时

编辑 感谢您的快速回复.请看看真正的问题是什么.这次我大胆了.

我理解==和.equals之间的区别.所以,这不是我的问题(我实际上添加了一些上下文)


我正在为空字符串执行以下验证:

if( "" == value ) { 
    // is empty string 
} 
Run Code Online (Sandbox Code Playgroud)

过去从db中获取值或从另一个节点反序列化对象时,此测试失败,因为两个字符串实例确实是不同的对象引用,尽管它们包含相同的数据.

所以这些情况的解决方案是

if( "".equals( value ) ) {
   // which returns true for all the empty strings
}
Run Code Online (Sandbox Code Playgroud)

我很好.这很清楚.

今天这又发生了一次,但它让我感到困惑,因为这次应用程序是一个非常小的独立应用程序,根本不使用网络,所以没有从数据库中提取新字符串,也不从另一个节点去激活.

所以问题是:


其他情况下:

"" == value // yields false 
Run Code Online (Sandbox Code Playgroud)

"".equals( value ) // yields true
Run Code Online (Sandbox Code Playgroud)

对于本地独立应用程序?

我很确定代码中没有使用新的String().

并且字符串引用可以是""的唯一方法是因为它直接在代码中分配""(或者我认为的那样),如:

String a = "";
String b = a;

assert "" == b ; // this …
Run Code Online (Sandbox Code Playgroud)

java comparison equality equals

33
推荐指数
4
解决办法
2万
查看次数

标签 统计

equality ×2

java ×2

comparison ×1

equals ×1

string ×1