This question already has answers here:
StringUtils.isBlank() vs String.isEmpty()
                                
                                    (11个答案)
                                
                        
                4年前关闭。
            
        

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

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()方法花费3毫秒的​​时间。我们应该使用哪种方法?

最佳答案

StringUtils.isBlank(foo));


检查字符串是否为空格,空(“”)或null。

StringUtils.isBlank()

foo.isEmpty()


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

isEmpty()

因此,如果想要高级的东西(例如,如果string为null则不会抛出NPE),请忽略空字符串(因此auto trim),然后使用StringUtils.isBlank(foo));

另一方面,正如您所展示的那样,性能差异很容易成为isEmpty()的原因,请看一下长度。

根据您的选择。

10-06 02:50