🌋

【Java】equalsIgnoreCaseメソッド とは (備忘録)

に公開

1.はじめに

大文字/小文字を区別せずに文字列が一致しているか判定したい場合、equalsIgnoreCase メソッドを使用します。

2.サンプルプログラム

〇例1:

Sapmple_1.java
public class Sample_1 {
    public static void main(String[] args) {
        String upperData = "ABC";
        String lowerData = "abc";

        if (upperData.equalsIgnoreCase(lowerData)) {
            System.out.println("文字列は一致(大文字/小文字の違いは無視)。");
        } else {
            System.out.println("文字列は不一致(大文字/小文字の違いは無視)。");
        }
    }
}
実行結果
文字列は一致(大文字/小文字の違いは無視)。

〇例2:文字列にnullが存在する場合

Sapmple_2.java
public class Sample_2 {
    public static void main(String[] args) {
        String upperData = null;
        String lowerData = "abc";

        if (upperData.equalsIgnoreCase(lowerData)) {
            System.out.println("文字列は一致(大文字/小文字の違いは無視)。");
        } else {
            System.out.println("文字列は不一致(大文字/小文字の違いは無視)。");
        }
    }
}
実行結果
ERROR!
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "<local1>" is null
	at Sample_2.main(Main.java:6)

〇例3:nullかどうか判定し、大文字/小文字を区別せずに文字列が一致しているか判定

Sapmple_3.java
public class Sample_3 {
    public static void main(String[] args) {
        String upperData = null;
        String lowerData = "abc";

        // nullどうか判定
        if (upperData != null) {
            if (upperData.equalsIgnoreCase(lowerData)) {
                System.out.println("文字列は一致(大文字/小文字の違いは無視)。");
            } else {
                System.out.println("文字列は不一致(大文字/小文字の違いは無視)。");
            }
        } else {
            System.out.println("文字列がnullのため、一致判定ができません。");
        }
    }
}
実行結果
文字列がnullのため、一致判定ができません。

〇例4:大文字/小文字を区別せずに入力した文字列が一致しているか判定

Sapmple_4.java
import java.util.Scanner;

public class Sample_4 {
    public static void main(String[] args) {
        // 標準入力(通常はキーボード)からの入力内容を受け付ける
        Scanner scanner = new Scanner(System.in);

        System.out.println("任意の文字列を入力してください。");
        // キーボードからの入力内容を1行読み取る
        String firstData = scanner.nextLine();

        System.out.println("再度、同じ文字列を入力してください。");
        // キーボードからの入力内容を1行読み取る
        String secondData = scanner.nextLine();

        // 入力された内容が空文字か判定
        if (!firstData.isEmpty() && !secondData.isEmpty()) {
            if (firstData.equalsIgnoreCase(secondData)) {
                System.out.println("入力された文字列が一致(大文字/小文字の違いは無視)。");
            } else {
                System.out.println("入力された文字列が不一致(大文字/小文字の違いは無視)。");
            }
        } else {
            System.out.println("入力された文字列が空文字のため、一致判定ができません。");
        }
    }
}

3.参考

【Java入門】equalsIgnoreCaseで大文字と小文字を区別せずに比較
isEmptyメソッド

4.その他

実行環境

Discussion