【Java入門】String型の大小を比較する方法(compare)

この記事ではString型の大小を比較する方法をわかりやすく解説します!

文字列の大小を比較したい
compareの使い方を知りたい
compareToの戻り値の数値の意味を知りたい
compareとequalsの違いを知りたい

今回はそんな悩みを解決する文字列の大小の比較についてです。

なお、Javaの記事については、こちらにまとめています。

文字列と数値の大小を辞書順で比較する方法

文字列をcompareToで比較する方法

初めに文字列の大小を比較する方法を解説します。

文字列の大小を比較するにはcompareToメソッドを使います。

equalsメソッドの等しいかどうかの比較とは違い、compareToメソッドではUnicode値がどれだけ離れているかを辞書的に比較します。

文字列の大小を比較する方法を覚えるために次のプログラムを見てみましょう。

public class Main {
 
    public static void main(String[] args) {

        String str1 = "a";
        String str2 = "b";
         
        System.out.println(str1.compareTo(str2));
        System.out.println(str2.compareTo(str1));
        System.out.println(str1.compareTo(str1));
    }
 
}
[実行結果]
-1
1
0

compareToメソッドの戻り値は、引数で指定した文字列が辞書的に後になる場合に負の値を返します。
逆に辞書的に前になる場合は正の値を返し、同じ場合は”0”を返します。

数値をcompareで比較する方法

次に数値をcompareで比較する方法を解説します。

数値の大小を辞書順で比較する場合はcompareメソッドを使います。

次のプログラムで確認してみましょう。

public class Main {
 
    public static void main(String[] args) {

        int num1 = 1;
        int num2 = 2;
         
        System.out.println(Integer.compare(num1, num2));
        System.out.println(Integer.compare(num2, num1));
        System.out.println(Integer.compare(num1, num1));
    }
 
}
[実行結果]
-1
1
0

文字列の比較と同じように、辞書的に数値の大小が比較できることが確認できました。

大文字と小文字の区別をしないで比較する方法

次に大文字と小文字の区別をしないで比較する方法を解説します。

大文字と小文字の区別をしないで比較するには、compareToIgnoreCaseメソッドを使います。

次のプログラムで確認してみましょう。

public class Main {
 
    public static void main(String[] args) {

        String str1 = "a";
        String str2 = "A";
                
        System.out.println(str1.compareTo(str2));
        System.out.println(str1.compareToIgnoreCase(str2));
    }
 
}
[実行結果]
32
0

compareToIgnoreCaseメソッドを使った場合に、大文字と小文字が等しいと判定されることが確認できました。

日付の大小を比較する方法

最後に日付の大小を比較する方法を解説します。

日付の場合もcompareToメソッドで比較をすることができます。

次のプログラムで確認してみましょう。

import java.util.Calendar;

public class Main {
 
    public static void main(String[] args) {

        Calendar calendar1 = Calendar.getInstance();
        calendar1.set(2017, 3, 7, 01, 23, 45);
         
        Calendar calendar2 = Calendar.getInstance();
        calendar2.set(2017, 3, 8, 01, 23, 45);
         
        System.out.println(calendar1.compareTo(calendar2));
        System.out.println(calendar2.compareTo(calendar1));
        System.out.println(calendar1.compareTo(calendar1));
    }
 
}
[実行結果]
-1
1
0

日付の場合も同様に比較ができることが確認できました。

compareToで大小を比較をする方法総まとめ

compareToメソッドで大小を比較するいろいろな方法を次の記事にまとめているので、ぜひ確認してください!

まとめ

いかがでしたか?

今回は文字列や数値の大小を辞書順で比較する方法について解説しました。

辞書的に比較するというのは、Unicode値で比較することなので注意してくださいね。

もしString型の大小を比較する方法を忘れてしまったらこの記事を確認してください!

\業界最安級/
月額2,980円のプログラミングスクール

✔ 業界最安値の月定額2,980円
✔ 「Q&A掲示板」で平均30分以内に回答がもらえる
✔ 月に一度の「オンライン相談」で悩みを解決
✔ 教材の数は30種類以上
✔ 入会金不要+いつでも退会OK

公式サイトはこちら

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI TERAKOYA

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close