005 条件分岐(if文) 007 解答例

import java.util.Scanner;

public class StringComparison {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("1つ目の文字列を入力してください: ");
        String str1 = scanner.nextLine();

        System.out.print("2つ目の文字列を入力してください: ");
        String str2 = scanner.nextLine();

        if (str1.equals(str2)) {
            System.out.println("同じです");
        }

        scanner.close();
    }
}

このプログラムでは、ユーザーから2つの文字列を入力し、それらの文字列が同じかどうかを確認して、「同じです」と表示します。

  • Scanner クラスを使用してユーザーから2つの文字列を受け取ります。
  • 受け取った2つの文字列をそれぞれの変数 str1str2 に格納します。
  • if 文を使用して、str1str2 の文字列が同じかどうかを確認します。.equals() メソッドを使用して、文字列の比較を行います。文字列が同じ場合、条件が真(true)となり、「同じです」と表示します。

このプログラムを実行すると、ユーザーが入力した2つの文字列が同じかどうかが確認され、結果が表示されます。

文字列の比較

文字列の比較は、プログラム内で2つの文字列を比較して、それらが同じかどうかを判定する操作です。Javaでは、文字列を比較するためにいくつかの方法が提供されています。以下に主要な文字列比較の方法を解説します。

  1. equals() メソッドを使用した比較:
    • equals() メソッドは、2つの文字列が完全に同じ場合に true を返します。
    • 例: str1.equals(str2) は、str1str2 が同じかどうかを比較します。
  2. equalsIgnoreCase() メソッドを使用した比較:
    • equalsIgnoreCase() メソッドは、2つの文字列が同じであるか、大文字小文字の違いを無視して同じ場合に true を返します。
    • 例: str1.equalsIgnoreCase(str2) は、str1str2 が同じかどうかを大文字小文字を無視して比較します。
  3. compareTo() メソッドを使用した比較:
    • compareTo() メソッドは、2つの文字列を辞書順に比較し、整数を返します。0の場合は同じ、負の値の場合は1つ目の文字列が2つ目の文字列より小さい、正の値の場合は1つ目の文字列が2つ目の文字列より大きいことを示します。
    • 例: str1.compareTo(str2) は、str1str2 の辞書順比較を行います。

これらのメソッドを使用して、文字列を比較することができます。適切なメソッドを選択し、プログラムの要件に応じて文字列の比較を行います。文字列比較は条件文や文字列のソートなど、さまざまなシナリオで使用されます。

文字列の比較をするときの注意

文字列の比較において、== 演算子は2つの文字列が同じオブジェクトを参照しているかどうかを比較します。しかし、文字列の内容が同じであるかどうかを確認するのではなく、オブジェクトの参照を比較します。

以下は == 演算子を使用して文字列の比較を行う例です:

String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");

boolean areEqual1 = (str1 == str2); // true, 同じオブジェクトを参照
boolean areEqual2 = (str1 == str3); // false, 別のオブジェクトを参照

上記の例では、str1 と str2 は同じ文字列リテラルを参照しており、str3 は新しい文字列オブジェクトを生成しています。

== 演算子は参照比較を行うため、同じ内容の文字列であっても異なるオブジェクトを参照している場合に false を返します。文字列の内容が同じかどうかを比較するには、equals() メソッドを使用することが一般的です。

以下は equals() メソッドを使用して文字列の内容を比較する例です:

String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");

boolean areEqual1 = str1.equals(str2); // true, 同じ内容の文字列
boolean areEqual2 = str1.equals(str3); // true, 同じ内容の文字列

equals() メソッドは文字列の内容を比較するため、str1 と str2 、および str1 と str3 は同じ内容を持っているため、true を返します。文字列の内容を比較する場合は、通常は equals() メソッドを使用することをお勧めします。

「005条件分岐」問題集リスト