这些之间有区别吗?
if(myString.equals("")){
}
if(myString.equals(null)){
}
if(myString == ""){
}
Run Code Online (Sandbox Code Playgroud)
我有一个字符串,我不知道它是空的还是有一些空间我只是不想阻止它写在数据库中,如果它是无效的(如果是空的或有一些空格).
Poi*_*nty 10
您的每个示例都彼此不同.
myString为空(一个没有字符的字符串)NullPointerExceptionmyString引用空字符串常量.如果变量是从空字符串常量显式初始化,或者如果变量是使用一些"生成的"空字符串(例如new StringBuilder().toString())初始化,然后显式添加到常量池中,那么情况就是如此intern().正如评论中指出的那样,第一个例子也可能抛出NullPointerException,但不是第三个例子.
要实现你想要的,写:
if (!myString.trim().equals("")) {
// write to database
}
Run Code Online (Sandbox Code Playgroud)
或者如果还有myString可能是null:
if (myString != null && !myString.trim().equals("")) {
// write to database
}
Run Code Online (Sandbox Code Playgroud)