文字列比較の基本
Javaで文字列を比較する基本的な方法はequals()メソッドを使用することです。
equals()メソッドは、二つの文字列が完全に一致するかどうかをチェックします。一致する場合はtrueを、そうでない場合はfalseを返します。

equals()メソッドの使用例
ソースコード例
1 2 3 4 5 6 7 8 9 |
public class Program { public static void main(String[] args) { String str1 = "Hello"; String str2 = "Hello"; String str3 = "hello"; System.out.println(str1.equals(str2)); // true System.out.println(str1.equals(str3)); // false } } |
出力結果
true
false

大文字小文字を無視した比較
大文字小文字を区別せずに文字列を比較したい場合は、equalsIgnoreCase()メソッドを使用します。
このメソッドは、文字列の内容が同じであれば、大文字小文字の違いを無視してtrueを返します。

KindleUnlimited会員であれば、全ての本をご覧頂けます。 StreamAPIを理解すれば、Javaの世界が変わる 第1版

equalsIgnoreCase()メソッドの使用例
ソースコード例
1 2 3 4 5 6 7 |
public class Program { public static void main(String[] args) { String str1 = "Hello"; String str2 = "hello"; System.out.println(str1.equalsIgnoreCase(str2)); // true } } |
出力結果
true

文字列の辞書順比較
文字列を辞書順に比較するには、compareTo()メソッドを使用します。
このメソッドは、比較する文字列が引数の文字列より辞書順で前にある場合は負の整数、同じである場合は0、後ろにある場合は正の整数を返します。

compareTo()メソッドの使用例
ソースコード例
1 2 3 4 5 6 7 8 |
public class Program { public static void main(String[] args) { String str1 = "Hello"; String str2 = "World"; System.out.println(str1.compareTo(str2)); // 負の整数 System.out.println(str2.compareTo(str1)); // 正の整数 } } |
出力結果
負の整数
正の整数

大文字小文字を無視した辞書順比較
`compareTo()メソッドと同様に、compareToIgnoreCase()メソッドは文字列を辞書順で比較しますが、大文字と小文字の違いを無視します。
このメソッドは、比較する文字列が引数の文字列より辞書順で前にある場合は負の整数、同じである場合は0、後ろにある場合は正の整数を返しますが、この比較で大文字と小文字の違いは考慮されません。

compareToIgnoreCase()メソッドの使用例
ソースコード例
1 2 3 4 5 6 7 |
public class Program { public static void main(String[] args) { String str1 = "hello"; String str2 = "Hello"; System.out.println(str1.compareToIgnoreCase(str2)); // 0 } } |
出力結果
0

大文字小文字の違いを気にしないで済むんだね!
文字列比較におけるよくある間違い
Javaにおける文字列比較では、いくつかの一般的な間違いがあります。
たとえば、==演算子を使用して文字列の等価性をチェックすることです。
==演算子は、二つの参照が同じオブジェクトを指しているかどうかをチェックします。
そのため、文字列の内容が同じでも、異なるオブジェクトを指している場合はfalseを返します。

==演算子による文字列比較の間違い例
ソースコード例
1 2 3 4 5 6 7 |
public class Program { public static void main(String[] args) { String str1 = new String("Hello"); String str2 = new String("Hello"); System.out.println(str1 == str2); // false } } |
出力結果
false

-
-
integer型の比較はコチラ【Java】integer型からint型、int型からinteger型への変換と比較方法を解説
JavaでのintとIntegerの変換:わかりやすく解説 JavaでのintとIntegerの変換の必要性 Javaでは、プリミティブデータ型であるintと、そのラッパークラスであるIntegerが ...
続きを見る
まとめ
この記事では、Javaにおける文字列の比較方法について、equals(), equalsIgnoreCase(), compareTo(), compareToIgnoreCase()メソッドを中心に解説しました。これらのメソッドを適切に使用することで、文字列比較を正確に行うことができます。
また、==演算子による比較の誤りとその回避方法についても説明しました。文字列比較はプログラミングにおいて頻繁に行われる操作の一つです。この記事が、文字列比較を正しく理解し、Javaプログラミングスキルを向上させるのに役立てば幸いです。
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!
