web-dev-qa-db-ja.com

Apache StringUtils.isBlank(str)とGuava Strings.isNullOrEmpty(str):空白を定期的にチェックする必要がありますか?

使用することに利点はありますか

_StringUtils.isBlank(str) 
_

apachecommons-langから。

vs

_Strings.isNullOrEmpty(String string)
_

グーグルグアバから?

Javaプロジェクトでの使用に続いて、それらの何百ものケースを置き換えたい:

_if(str == null || str.isEmpty())
_

Guavaの isNullOrEmpty は、私のプロジェクトでの上記の使用法の直接の代替品のようです。

しかし、私のS.Oの読みに基づいて、Apacheの isBlank メソッドを使用する人が増えているようです。質問。

唯一の違いは、StringUtils.isBlank(str)は、文字列がnullか空かをチェックするだけでなく、空白もチェックすることです。

通常、文字列の空白をチェックすることをお勧めしますか、それともGuavaのより単純なチェックとは異なる結果をコードに生成する可能性がありますか?

21
Bryce Marden

Guavaを使用してisBlankの動作を複製する場合は、代わりに次の方法を使用します。

Strings.nullToEmpty(str).trim().isEmpty()

14
dcendents

人間からの入力を受け入れる必要がある場合、特定のアプリケーションで意味がある場合は、入力するテキストから先頭と末尾の空白を許容して削除する必要があります。

とは言うものの、isBlankの使用は中途半端です。さらに処理する前に、文字列をtrimする必要もあります。したがって、isNullOrEmptyで確認する前に、s = trim(s);を使用することをお勧めします。

8
Roland Illig

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
_

ここで、as Strings.isNullOrEmpty(String string)は、指定された文字列がnullまたは空の文字列の場合、trueを返します。

3

isBlankは信じられないほど過大評価されています。入力フィールドから直接ユーザーテキストを読み取るUIコードは、空白を完全に削除することができ、それで心配する必要がなくなります。

1