java 11 中 isEmpty() 和 isBlank() 方法的区别

Difference between isEmpty() and isBlank() Method in java 11

Java 11 添加了一个新的实例方法 isBlank()java.lang.String class.

现有isEmpty和新增isBlank()方法的基本区别是什么?

isEmpty()

java字符串isEmpty()方法检查这个字符串是否为空。它returnstrue,如果字符串的长度为0,否则false例如

System.out.println("".isEmpty()); // Prints - True
System.out.println(" ".isEmpty()); //Prints - False 

Java 11 - isBlank()

新实例方法java.lang.String.isBlank()returns如果字符串为空或只包含白色则为真space, 其中 whitespace 定义为 returns true 传递给 Character#isWhitespace(int).

的任何代码点
boolean blank = string.isBlank();

之前 Java 11

boolean blank = string.trim().isEmpty();

Java11之后

boolean blank = string.isBlank();

Java 11 在 String class

中添加了名为 .isBlank() 的新方法
  1. isBlank() 方法等于 str.trim().isEmpty() 早于 java 11 版本
  2. isEmpty() : Returns true 当且仅当 length() 为 0

这是isBlank()方法在Stringclass中的内部实现java11

public boolean isBlank() {
    return indexOfNonWhitespace() == length();
}

private int indexOfNonWhitespace() {
    if (isLatin1()) {
        return StringLatin1.indexOfNonWhitespace(value);
    } else {
        return StringUTF16.indexOfNonWhitespace(value);
    }
}

区别如下:-

isBlank() return 对于只有白色 space 字符的字符串为真,而 isEmpty() 对于此类字符串 return 为假。

("\n\r  ").isBlank();  //returns true
("\n\r  ").isEmpty();  //returns false

有关代码示例的详细说明,请访问:isBlank() vs isEmpty() in String class Java