Java字符串比较:使用'equals()'而非'!='
Java字符串比较:使用'equals()'而非'!='
在Java编程中,对String类型的值进行比较时,一个常见的错误是使用'!='操作符而不是'equals()'方法。
为什么这是错误的?
在Java中,String是一个对象,而不是基本数据类型。'!='操作符比较的是两个对象的引用是否相同,而'equals()'方法比较的是两个对象的内容是否相同。
假设您有一个名为'oldimgid'的String变量,您需要检查它是否为非空字符串。使用'!='操作符的代码如下:javaoldimgid != null && oldimgid != ''
这段代码看似正确,但实际上存在潜在问题。如果'oldimgid'指向一个空字符串对象,那么第二个条件'oldimgid != ""'将返回false,因为空字符串对象仍然是一个对象,其引用与'!='操作符右侧的空字符串字面量不同。
正确的比较方法
为了确保比较的是字符串内容而不是引用,您应该使用'equals()'方法:javaoldimgid != null && !oldimgid.equals('')
在这个修改后的表达式中,只有当'oldimgid'不为null且不为空字符串时,整个表达式才会被判定为true。
总结
为了避免在Java中比较字符串时出现意外结果,请始终使用'equals()'方法来比较字符串内容。避免使用'!='操作符,因为它比较的是对象的引用而不是内容。
原文地址: https://www.cveoy.top/t/topic/FTm 著作权归作者所有。请勿转载和采集!