Java 文字列を比較する方法 - クラス String
Javaで2つの文字列が同じかどうかを比較する方法です。
文字列の比較には equals
を利用して比較します。比較元の String
型が null
の場合、NullPointerException
が発生しますので、注意が必要です。
例外が発生しないように、StringUtils
などのユーティリティクラスを作って、比較用メソッドを用意することをおすすめします。
ここでは Javaで2つの文字列が同じかどうかを比較する方法 を紹介します。
文字列比較用メソッド
以下のメソッドでは、引数に指定された 2 つのオブジェクトを比較します。等しい場合は、true
を返します。
/**
* 引数に指定された 2 つのオブジェクトを比較します。 2 つの引数が null でなく、
* 同じ文字シーケンスを表す <code class="code">String</code> オブジェクトである場合にだけ、
* 結果は true になります。
*
* @param value 比較するオブジェクト
* @param anotherValue 比較される、もうひとつオブジェクト
* @return String が等しい場合は true 、そうでない場合は false
*/
public static boolean equals(String value, String anotherValue) {
if ( value == null || anotherValue == null ) return false;
if ( value.equals(anotherValue) )
return true;
else
return false;
}
以下のテストを実行すると・・・
System.out.println(StringUtils.equals(null, null));
System.out.println(StringUtils.equals("saka-en", "saka-en"));
System.out.println(StringUtils.equals(null, "saka-en"));
System.out.println(StringUtils.equals("saka-en", null));
System.out.println(StringUtils.equals("saka-en", "SAKA-EN"));
System.out.println(StringUtils.equals("saka-en", "saka"));
結果はこうなります。
false
true
false
false
false
false
逆に、以下のメソッドでは、等しくない場合には true
を返します。
/**
* 引数に指定された 2 つのオブジェクトを比較します。 2 つの引数が null でなく、
* 違う文字シーケンスを表す String オブジェクトである場合にだけ、結果は true になります。
*
* @param value 比較するオブジェクト
* @param anotherValue 比較される、もうひとつオブジェクト
* @return String が等しくない場合は true 、等しい場合は false
*/
public static boolean notEquals(String value, String anotherValue) {
if ( value == null || anotherValue == null ) return false;
if ( value.equals(anotherValue) )
return false;
else
return true;
}
以下のテストを実行すると・・・
System.out.println(StringUtils.notEquals(null, null));
System.out.println(StringUtils.notEquals("saka-en", "saka-en"));
System.out.println(StringUtils.notEquals(null, "saka-en"));
System.out.println(StringUtils.notEquals("saka-en", null));
System.out.println(StringUtils.notEquals("saka-en", "SAKA-EN"));
System.out.println(StringUtils.notEquals("saka-en", "saka"));
結果はこうなります。
false
false
false
false
true
true
まとめ
Javaで2つの文字列が同じかどうかを比較する方法しました。
文字列比較は、どのプログラム言語を利用する場合でも基本となりますので、しっかり覚えておきたいですね。
おつかれさまでした。