網頁

2019/9/20

Java Apache Commons Lang StringUtils isEmpty() 與 isBlank()的區別

Apache Commons Lang套件中的StringUtils.isEmpty()StringUtils.isBlank()差別如下。

因為每次用都忘記所以特別記錄一下。兩著的差別在於isEmpty()對空白字串返回結果為false,而isBlank()對空白字串返回結果為true。

System.out.println( StringUtils.isEmpty(null) ); // true
System.out.println( StringUtils.isEmpty("") );   // true
System.out.println( StringUtils.isEmpty("  ") ); // false <--

System.out.println( StringUtils.isBlank(null) ); // true
System.out.println( StringUtils.isBlank("") );   // true
System.out.println( StringUtils.isBlank("  ") ); // true <--

這兩個方法都常用來驗證傳入的字串是否為空,例如身份證號,顧客編號,訂單編號等。如果沒有特別的效能考量話,建議統一用isBlank(),因為這類參數若是空白字串多不具意義,空白字串多是直接排除不給進一步的新增或查詢。

if (StringUtils.isBlank(custId)) {
    return;
}

但效能上isBlank()isEmpty()差,因為isBlank()還要檢查字串中的每個字中是否為空白。

沒有留言:

張貼留言