在JDK文档中,它声明String方法isEmpty()
对于任何长度为0的字符串都是真的。
对于空字符串""
,这显然是正确的。
是否还有其他字符串?我测试过换行符和回车符,它们有一个长度。我还没有用附加的退格键测试字符。
编辑:我很欣赏以下所有优秀答案中的所有其他信息,但我已经接受了我认为最直接的答案。
答案 0 :(得分:8)
长度为0的字符串包含0个字符。所以不,除了空字符串外,没有其他字符串是空的。
答案 1 :(得分:8)
“长度为零的字符串”表示字符串根本不包含任何字符,包括不可见,零宽度等Unicode字符。
因此,如果一个字符串的屏幕表示完全为空白且零宽度,如果它包含一个字符,则该字符串仍然是非空的。
答案 2 :(得分:4)
请参阅implementation:
670 public boolean isEmpty() {
671 return count == 0;
672 }
其中count
是字符串中的字符数。
只有当字符串中没有字符时才会出现这种情况,只有""
。
答案 3 :(得分:2)
apaches commons org.apache.commons.lang3.StringUtils class
中有两个有用的方法 isBlank(CharSequence cs)
检查CharSequence是否为空格,为空(“”)或为空。
isEmpty(CharSequence cs)
检查CharSequence是否为空(“”)或为空。
如果您不想重新发明轮子,也许这就是您正在寻找的东西。
答案 4 :(得分:2)
从Java 1.6 onwords String.isEmpty()
可以使用。它比String.equals("")
调用快。字符串存储在构造函数中初始化的计数变量,因为字符串是不可变的。
isEmpty()
将count变量与0进行比较,而equals将检查类型,字符串长度,然后迭代字符串以进行比较(如果大小匹配)。
-
public boolean isEmpty()
Returns true if, and only if, length() is 0.
Returns:
true if length() is 0, otherwise false
Since:
1.6
答案 5 :(得分:1)