【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型の大小を比較する方法を忘れてしまったらこの記事を確認してください!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次