Javaで空の文字列または空白の文字列をチェックする

1.はじめに

このチュートリアルでは、Javaで空の文字列または空白の文字列をチェックするいくつかの方法について説明します。いくつかの母国語のアプローチといくつかのライブラリがあります。

2.空vs.空白

もちろん、文字列が空であるか空白であるかを知ることはかなり一般的ですが、定義と同じページにいることを確認しましょう。

私たちは、文字列があると考えて、空、それはどちらかだ場合はnullまたはなしの文字列の任意の長さ。文字列が空白のみで構成されている場合は、空白と呼びます

Javaの場合、空白はスペースやタブなどの文字です。例については、Character.isWhitespaceをご覧ください。

3.空の文字列

3.1。Java6以降の場合

少なくともJava6を使用している場合空の文字列をチェックする最も簡単な方法はString#isEmptyです。

boolean isEmptyString(String string) { return string.isEmpty(); }

また、nullセーフにするには、チェックを追加する必要があります。

boolean isEmptyString(String string)  string.isEmpty(); 

3.2。Java5以下の場合

String#isEmptyはJava 6で導入されました。Java5以下では、代わりにString#lengthを使用できます。

boolean isEmptyString(String string)  return string == null 

実際、String#isEmptyString#lengthへのショートカットにすぎません。

4.空白の文字列

String#isEmptyString#lengthの両方を使用して、空の文字列をチェックできます。

空白の文字列も検出したい場合は、String#trimを使用してこれを実現できます。それはなりますチェックを実行する前に、すべての先頭と末尾の空白を削除します。

boolean isBlankString(String string)  string.trim().isEmpty(); 

正確には、String#trimは、U +0020以下のUnicodeコードを持つすべての先頭文字と末尾文字を削除します。

また、Stringは不変であるため、trimを呼び出しても実際には基になる文字列は変更されないことにも注意してください。

5.Bean検証

空白の文字列をチェックするもう1つの方法は、正規表現です。これは、たとえばJava BeanValidationで便利です。

@Pattern(regexp = "\\A(?!\\s*\\Z).+") String someString;

指定された正規表現は、空または空白の文字列が検証されないことを保証します。

6. ApacheCommonsを使用する

依存関係を追加しても問題がない場合は、Apache CommonsLangを使用できます。これには、Java用の多数のヘルパーがあります。

Mavenを使用する場合は、commons-lang3依存関係をpomに追加する必要があります。

 org.apache.commons commons-lang3 

とりわけ、これは私たちにStringUtilsを与えます。

このクラスには、isEmptyisBlankなどのメソッドが付属しています。

StringUtils.isBlank(string)

この呼び出しは、独自のisBlankStringメソッドと同じように機能します。nullセーフであり、空白もチェックします。

7.グアバと

特定の文字列関連ユーティリティを提供するもう1つの有名なライブラリは、GoogleのGuavaです。バージョン23.1以降、Guavaにはandroidjreの2つのフレーバーがあります。AndroidフレーバーはAndroidとJava7を対象としていますが、JREフレーバーはJava8を対象としています。

Androidをターゲットにしていない場合は、JREフレーバーをpomに追加するだけです。

 com.google.guava guava 28.0-jre 

Guavas Stringsクラスには、Strings.isNullOrEmptyメソッドが付属しています

Strings.isNullOrEmpty(string)

指定された文字列がnullか空かをチェックしますが、空白のみの文字列はチェックしません

8.結論

文字列が空かどうかを確認する方法はいくつかあります。多くの場合、文字列が空白であるかどうか、つまり空白文字のみで構成されているかどうかも確認する必要があります。

最も便利な方法は、StringUtils.isBlankなどのヘルパーを提供するApache CommonsLangを使用することです。プレーンJavaに固執したい場合は、String#trimString#isEmptyまたはString#lengthのいずれかを組み合わせて使用​​できます。Bean Validationの場合、代わりに正規表現を使用できます。

これらすべてのサンプルをGitHubで確認してください。