这两者有区别吗?
if(myString.equals("")){
}
if(myString.equals(null)){
}
if(myString == ""){
}
我有一个字符串,我不知道它是空的还是有一些空的空格,我只是想在它无效时阻止它被写入数据库(如果为空或有一些空格)。
最佳答案
您的每个示例都彼此不同。
- 第一个是一个简单的比较,看看是否
myString
为空(其中没有字符的字符串) - 第二个总是 false 或
NullPointerException
- 第三个检查变量
myString
是否存在引用空字符串常量。如果变量是从空字符串常量显式初始化的,或者如果变量是使用某些“生成的”空字符串(例如new StringBuilder().toString()
)初始化然后显式添加到常量池intern()
.
正如评论中指出的,第一个示例也可能抛出 NullPointerException
,但不是第三个。
关于java - Java中各种字符串比较的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2638801/