[英]Apache's StringUtils.isBlank(str) vs. Guava's Strings.isNullOrEmpty(str): Should you routinely check for whitespace?
使用是否有任何優勢
StringUtils.isBlank(str)
來自Apache commons-lang。
VS
Strings.isNullOrEmpty(String string)
來自Google Guava?
我想在Java項目中使用后替換數百個它們:
if(str == null || str.isEmpty())
Guava的isNullOrEmpty似乎是我項目中上述用法的直接替代品。
但是,基於我對SO問題的閱讀,更多人似乎使用了Apache的isBlank方法。
唯一的區別似乎是StringUtils.isBlank(str)
除了檢查字符串是null還是空之外還檢查空格 。
通常,檢查字符串的空格是否是一個好主意,或者在代碼中產生的結果可能比Guava更簡單的檢查更好?
如果你想使用Guava來復制isBlank行為,我會改用以下方法:
Strings.nullToEmpty(str).trim().isEmpty()
當你必須接受來自人類的輸入時,如果在特定的應用程序中有意義的話,你應該寬恕並從他們鍵入的任何文本中刪除前導和尾隨空格。
也就是說,使用isBlank
只是半熟的。 您還需要在進一步處理之前trim
字符串。 所以我建議使用s = trim(s);
在使用isNullOrEmpty
進行檢查之前。
StringUtils.isBlank(str)
與Strings.isNullOrEmpty(String string)
非常不同
第一個代碼示例只檢查字符串是否為空,它也將包含空格並返回
true
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
where as
Strings.isNullOrEmpty(String string)
如果給定的字符串為null或為空字符串,則返回true
isBlank
被高估了。 直接從輸入字段讀取用戶文本的UI代碼可以一勞永逸地修剪空格,然后您可以不再擔心它。
番石榴或多或少的目標是成為Apache Commons的“下一代”替代品。 除了使用一個或另一個之外,使用isBlank()和isNullOrEmpty()之間確實沒有太大的實際區別。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.