Menu
CoddyTech

文字列比較

CoddyのJavaジャーニー「基礎」セクションの一部。レッスン 70/73。

Javaでは、文字列の比較は整数や文字などのプリミティブ型のデータを比較するほど単純ではありません。文字列はオブジェクトであり、==は内容ではなくメモリアドレスを比較するため、等しいかどうかを調べるのに==演算子は使えません。その代わり、文字列内の実際の文字を比較するには、Stringクラスが提供する専用のメソッドを使う必要があります。

文字列比較の主なメソッドは次のとおりです。

  • equals(Object other): 文字列を別のオブジェクト(通常は別の文字列)と比較します。文字列の文字が同じ順序で並んでいる場合はtrueを返し、それ以外の場合はfalseを返します。このメソッドでは大文字と小文字が区別されます。
  • equalsIgnoreCase(String other):equalsと似ていますが、大文字と小文字を区別しません。文字列の大文字と小文字に関係なく、同じ文字で構成されている場合はtrueを返し、そうでない場合はfalseを返します。
  • compareTo(String other): 2つの文字列を辞書順(Unicode値に基づいて)で比較します。文字列が等しい場合は0、最初の文字列が2番目の文字列より小さい場合は負の数、最初の文字列が2番目の文字列より大きい場合は正の数を返します。このメソッドでは大文字と小文字が区別されます。
  • compareToIgnoreCase(String other): compareToと似ていますが、大文字と小文字を区別しません。

例を見てみましょう。

String str1 = "hello";
String str2 = "hello";
String str3 = "HELLO";
String str4 = "world";

boolean eq1 = str1.equals(str2); // true
boolean eq2 = str1.equals(str3); // false
boolean eq3 = str1.equalsIgnoreCase(str3); // true

int cmp1 = str1.compareTo(str2); // 0
int cmp2 = str1.compareTo(str4); // 負の値
int cmp3 = str4.compareTo(str1); // 正の値
int cmp4 = str1.compareToIgnoreCase(str3); // 0
challenge icon

チャレンジ

簡単

2つの文字列を入力として受け取り、次の比較を行うcompareStringsという名前のメソッドを作成してください。

  1. equalsを使用して2つの文字列が等しいかどうかを確認し、その結果を出力します。
  2. equalsIgnoreCaseを使用して大文字と小文字を区別せずに2つの文字列が等しいかどうかを確認し、その結果を出力します。
  3. compareToを使用して2つの文字列を比較し、その結果を出力します。
  4. compareToIgnoreCaseを使用して大文字と小文字を区別せずに2つの文字列を比較し、その結果を出力します。

入力文字列がHELLOとhelloの場合の出力例:

HELLO equals hello: false
HELLO equalsIgnoreCase hello: true
HELLO compareTo hello: -32
HELLO compareToIgnoreCase hello: 0

自分で試してみよう

import java.util.Scanner;

public class Main {
    public static void compareStrings(String str1, String str2) {
        // ここにコードを書いてください
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str1 = scanner.nextLine();
        String str2 = scanner.nextLine();
        compareStrings(str1, str2);
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Javaオンラインコンパイラ