0

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

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));
}

StringUtils.isBlank() 方法比简单的 String.isEmpty() 方法耗时 3ms。我们应该使用哪种方法?

4

1 回答 1

6
StringUtils.isBlank(foo));

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

StringUtils.isBlank()

foo.isEmpty()

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

是空的()

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

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

你的选择取决于需要。

于 2015-06-01T09:53:14.840 回答