Java で文字を比較する

Rupam Yadav 2023年10月12日
  1. Java で Character.compare() を使って文字を比較する
  2. Java で == を使って文字を比較する
  3. Java で String.matches() を使って文字を比較する
Java で文字を比較する

この記事では、Java で文字を比較する方法を紹介します。

Java で Character.compare() を使って文字を比較する

Java の Character クラスの compare() メソッドを用いて 2つの文字を比較することができます。これは 2つの文字を引数として受け取り、両方の文字が等しい場合は 0 を、最初の文字が 2 番目の文字よりも小さい場合は負の値を、最初の文字が 2 番目の文字よりも大きい場合は正の値を返します。

以下では、char1char2 の 2つの文字を Character.compare() を用いて比較し、戻り値が 0 より小さいか、0 より大きいか、0 に等しいかをチェックします。この例の出力では、両方の文字が同じであることがわかります。

public class CompareChar {
  public static void main(String[] args) {
    char char1 = 'z';
    char char2 = 'z';

    if (Character.compare(char1, char2) > 0) {
      System.out.println(char1 + " is greater");
    } else if (Character.compare(char1, char2) < 0) {
      System.out.println(char1 + " is less than " + char2);
    } else if (Character.compare(char1, char2) == 0) {
      System.out.println(char1 + " and " + char2 + " are equal");
    } else {
      System.out.println(char1 + " and " + char2 + " are invalid characters");
    }
  }
}

出力:

z and z are equal

Java で == を使って文字を比較する

長いメソッドを使わずに二重等式を使って文字を比較することができます。しかし、これは文字が同じかどうかを伝えるだけなので、柔軟性は最小限です。

public class CompareChar {
  public static void main(String[] args) {
    char char1 = 'a';
    char char2 = 'b';
    char char3 = 'a';

    if (char1 == char2) {
      System.out.println("Char1 and Char2 are equal");
    } else {
      System.out.println("Char1 and Char2 are not equal");
    }

    if (char1 == char3) {
      System.out.println("Char1 and Char3 are equal");
    } else {
      System.out.println("Char1 and Char3 are not equal");
    }
  }
}

出力:

Char1 and Char2 are not equal
Char1 and Char3 are equal

Java で String.matches() を使って文字を比較する

Java で文字を比較するこの方法では、正規表現を使って文字が小文字のアルファベットかどうかを確認します。文字列で利用できる matched() メソッドを使用します。matches() メソッドを使って文字列に変換したい文字があります。したがって、以下の例では、Character.toString(char1) を使用し、その後に正規表現メソッドを使用します。

public class CompareChar {
  public static void main(String[] args) {
    char char1 = 'a';

    if (Character.toString(char1).matches("[a-z?]")) {
      System.out.println("The character matches");
    } else {
      System.out.println("The character does not match");
    }
  }
}

出力:

The character matches
著者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

関連記事 - Java Char