我使用以下代码检查时间:
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。我们应该使用哪种方法?
答案 0 :(得分:4)
StringUtils.isBlank(foo));
检查String是否为空格,为空(“”)或为空。
foo.isEmpty()
当且仅当length()为0时返回true。
因此,如果想要一些高级的东西,如果string为null则不会抛出NPE,忽略空字符串(所以自动修剪)然后使用StringUtils.isBlank(foo));
另一方面,当您展示性能差异时,有一个非常好的原因isEmpty()
只看到长度。
根据需要选择它。