スライドショースライドショー

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

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

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

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

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

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

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

中沢 丈

中沢 丈

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

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

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説