Java 文字列を比較する方法 - クラス String ホームページ制作 | 墨田区

Java 文字列を比較する方法 – クラス String

LINEで送る
Pocket

Javaで2つの文字列が同じかどうかを比較する方法のご紹介です。

文字列の比較には、equals を利用して比較します。
比較元の String 型が null の場合、NullPointerException が発生しますので、
注意が必要です。

例外が発生しないように、StringUtils などのユーティリティクラスを作って、
比較用メソッドを用意することをおすすめします。




【PR】マジか?!「アレ」してるLINEスタンプっていったい・・・


文字列比較用メソッド

以下のメソッドでは、引数に指定された 2 つのオブジェクトを比較します。
等しい場合は、true を返します。

/**
 * 引数に指定された 2 つのオブジェクトを比較します。 2 つの引数が null でなく、
 * 同じ文字シーケンスを表す <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

文字列比較は、どのプログラム言語を利用する場合でも基本となりますので、
しっかり覚えておきたいですね。

おつかれさまでした。

LINEで送る
Pocket

この記事がお役に立ちましたら シェア をお願いいたします。

コメントを残す

コメント(必須)

お名前 (必須)
メールアドレス
(アドレスは公開されません)

Trackback URL