java - Java中各种字符串比较的区别

标签 java string

这两者有区别吗?

if(myString.equals("")){

}

if(myString.equals(null)){

}

if(myString == ""){

}

我有一个字符串,我不知道它是空的还是有一些空的空格,我只是想在它无效时阻止它被写入数据库(如果为空或有一些空格)。

最佳答案

您的每个示例都彼此不同。

  1. 第一个是一个简单的比较,看看是否 myString为空(其中没有字符的字符串)
  2. 第二个总是 false 或 NullPointerException
  3. 第三个检查变量 myString 是否存在引用空字符串常量。如果变量是从空字符串常量显式初始化的,或者如果变量是使用某些“生成的”空字符串(例如 new StringBuilder().toString() )初始化然后显式添加到常量池 intern() .

正如评论中指出的,第一个示例也可能抛出 NullPointerException ,但不是第三个。

关于java - Java中各种字符串比较的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2638801/

相关文章:

java - JDBC有没有办法检测列是否有默认值?

java - 使用 XStream 将对象转换为 JSON

java - 堆栈集合、Push 与 addElement

php - 使用php用单个逗号替换字符串中的多个逗号

mysql - 区分mysql中大小写不同的两个字符串

java - 如何在 setBounds 的情况下暂停进程

java - 检测正则表达式中的特定标点符号的奇怪行为

c++ - dll 中的资源字符串在程序中加载后不完全可见

c# - 如何在同一个文件中优雅地实现多个字符串替换?

结构打印垃圾中的字符数组