空字符串验证

Sna*_*Doc 2 java string null

我已经阅读了这个SO线程:Java,检查字符串是否为空且不为空?

出现的问题(并未在该主题中得到回答)是:

Why is string.isEmpty() better than using string.equals("") ?在同一个答案中,海报声明在J6之前,人们会用string.length == 0它来检查空字符串.我错过了什么,因为他们似乎都做了完全相同的事情......这只是美化代码的问题.

Jun*_*san 6

最好用的是

"".equals(yourString) 
Run Code Online (Sandbox Code Playgroud)

因为这可以避免空指针异常.

如果你使用

string.equals("") 
Run Code Online (Sandbox Code Playgroud)

如果你的字符串为null,它将抛出一个空指针异常.

而问题isEmpty是这样的

当且仅当length()为0时,返回true

因此,如果您的字符串为空,它也会导致NPE.

  • "所以如果你的字符串是空的,它也会导致NPE." - 如果你的字符串是空的,isEmpty()将返回true.如果您的String类型的*reference*为null,则尝试调用isEmpty()将抛出NPE,就像尝试调用任何其他方法一样. (3认同)