Javaで空白を無視しながら文字列を比較する
1. 概要
この短いチュートリアルでは、Javaの空白を無視して文字列を比較する方法を説明します。
2. replaceAll()メソッドを使用します
2つの文字列があるとします。1つはスペースを含み、もう1つはスペース以外の文字のみを含みます。
String normalString = "ABCDEF";
String stringWithSpaces = " AB CD EF ";
Stringクラスの組み込みのreplaceAll()メソッドを使用して、スペースを無視しながらそれらを簡単に比較できます。
assertEquals(normalString.replaceAll("\\s+",""), stringWithSpaces.replaceAll("\\s+",""));
上記のreplaceAll()メソッドを使用すると、タブや\nなどの非表示文字を含む文字列内のすべてのスペースが削除されます。
\ s +に加えて、\sを使用できます。
3. ApacheCommonsLangを使用する
次に、 Apache CommonsLangライブラリのStringUtilsクラスを使用して、同じ目標を達成できます。
このクラスには、 deleteWhitespace()メソッドがあります。このメソッドは、String内のすべてのスペースを削除するために使用されます。
assertEquals(StringUtils.deleteWhitespace(normalString), StringUtils.deleteWhitespace(stringWithSpaces));
4. SpringフレームワークのStringUtilsクラスを使用します
最後に、プロジェクトですでにSpring Frameworkを使用している場合は、org.springframework.utilパッケージのStringUtilsクラスを使用できます。
今回使用するメソッドはtrimAllWhitespace()です。
assertEquals(StringUtils.trimAllWhitespace(normalString), StringUtils.trimAllWhitespace(stringWithSpaces));
人の名前のようにスペースに意味がある文字列を比較する場合は、この記事のメソッドを使用しないでください。たとえば、次の2つの文字列は等しいと見なされます。 :「JACKIECHAN」と「JACKIE CHAN」、これは私たちが実際に望んでいるものではないかもしれません。
5. 結論
この記事では、Java の空白を無視して、文字列を比較するさまざまな方法を見てきました。
いつものように、この記事のサンプルコードは、GitHubのにあります。