字符串 isEmpty 和 StringUtils.isNotBlank() 之间最好

kar*_*oni 0 java string string-utils

我使用以下代码来检查时间:

public static void main(String[] args) throws Exception {
    String foo = "foo";
    long start=System.currentTimeMillis();
    if (StringUtils.isBlank(foo));
    long end=System.currentTimeMillis();
    System.out.println("isBlank="+(end-start));
    start=System.currentTimeMillis();
    if (foo!=null && !foo.isEmpty());
    end=System.currentTimeMillis();
    System.out.println("Sec="+(end-start));
}
Run Code Online (Sandbox Code Playgroud)

StringUtils.isBlank() 方法比简单的 String.isEmpty() 方法花费的时间长 3 毫秒。我们应该使用哪种方法?

Sai*_*aif 6

StringUtils.isBlank(foo));
Run Code Online (Sandbox Code Playgroud)

检查字符串是否为空格、空 ("") 或 null。

StringUtils.isBlank()

foo.isEmpty()
Run Code Online (Sandbox Code Playgroud)

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

是空的()

因此,如果想要一些高级的东西,如果字符串为空则不会抛出 NPE,忽略空字符串(所以自动修剪)然后使用 StringUtils.isBlank(foo));

另一方面,正如您所展示的性能差异,这有一个很好的原因isEmpty()只是看到长度。

它是您根据需要选择的。