有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java哪些字符串是空的?

在JDK文档中,它声明字符串方法isEmpty()对于任何长度为0的字符串都是真的

对于空字符串"",这显然是正确的

是否还有其他字符串是这种情况?我测试了换行符和回车符,它们有一个长度。我还没有测试附加了退格的字符


编辑:我感谢下面所有好答案中的所有附加信息,但是我已经接受了我认为是对这个问题最直接的答案


共 (6) 个答案

  1. # 1 楼答案

    从Java1.6开始,可以使用onwords^{}。它比String.equals("")调用快。字符串存储构造函数中初始化的计数变量,因为字符串是不可变的

    isEmpty()将count变量与0进行比较,而equals将检查类型、字符串长度,然后在大小匹配的情况下迭代字符串进行比较

    来自javadoc-

    public boolean isEmpty()
    Returns true if, and only if, length() is 0.
    Returns:
    true if length() is 0, otherwise false
    Since:
    1.6
    
  2. # 2 楼答案

    JavaDoc

    String#isEmpty() Returns true if, and only if, length() is 0.

    因此,没有其他情况下isEmpty()将返回true

  3. # 3 楼答案

    apaches commons org.apache.commons.lang3.StringUtils类中有两个有用的方法

    isBlank(CharSequence cs)

    检查字符序列是空白、空(“”)还是空

    isEmpty(CharSequence cs)

    检查CharSequence是空(“”)还是空

    也许这就是你想要的,如果你不想重新发明轮子的话

  4. # 4 楼答案

    implementation部分:

    670     public boolean isEmpty() {
    671         return count == 0;
    672     }
    

    其中count是字符串中的字符数

    只有当字符串中没有字符时才会出现这种情况,字符串中只有""

  5. # 5 楼答案

    “长度为零的字符串”表示该字符串不包含任何字符,包括不可见、零宽度等Unicode字符

    因此,屏幕上表示为完全空白且零宽度(如果包含字符)的字符串仍然是非空的

  6. # 6 楼答案

    长度为0的字符串包含0个字符。所以不,除了空字符串之外,没有其他字符串是空的