【Java】文字列が等しい(一致する)か判定する方法
以下のリンクをクリックすると、各セクションにジャンプできます。
equalsメソッドを使用した判定
equals
メソッドは、2つの文字列が完全に一致するかどうかを判定するために使用します。このメソッドは、大文字と小文字を区別します。
構文:
boolean result = string1.equals(string2);
例:
public class Main {
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
}
}
このコードでは、str1
とstr2
は等しいためtrue
が返されますが、str1
とstr3
は大文字小文字が異なるためfalse
が返されます。
equalsIgnoreCaseメソッドを使用した判定
equalsIgnoreCase
メソッドは、文字列が一致するかどうかを判定する際に、大文字と小文字を無視します。
構文:
boolean result = string1.equalsIgnoreCase(string2);
例:
public class Main {
public static void main(String[] args) {
String str1 = "Hello";
String str2 = "hello";
System.out.println(str1.equalsIgnoreCase(str2)); // true
}
}
この例では、大文字小文字の違いを無視して比較するためtrue
が返されます。
compareToメソッドを使用した判定
compareTo
メソッドは、2つの文字列を辞書的に比較します。比較の結果として、以下の値を返します。
- 0: 文字列が等しい場合
- 正の値: 最初の文字列が辞書順で後に続く場合
- 負の値: 最初の文字列が辞書順で前に来る場合
構文:
int result = string1.compareTo(string2);
例:
public class Main {
public static void main(String[] args) {
String str1 = "Apple";
String str2 = "Banana";
String str3 = "Apple";
System.out.println(str1.compareTo(str2)); // 負の値
System.out.println(str2.compareTo(str1)); // 正の値
System.out.println(str1.compareTo(str3)); // 0
}
}
このコードでは、文字列の辞書順に従った比較結果が得られます。
参考例
以下は、複数の比較方法を組み合わせた応用例です。
public class Main {
public static void main(String[] args) {
String input = "Java";
String correct = "JAVA";
if (input.equals(correct)) {
System.out.println("完全一致しました。");
} else if (input.equalsIgnoreCase(correct)) {
System.out.println("大文字小文字を無視して一致しました。");
} else {
System.out.println("一致しませんでした。");
}
}
}
このプログラムでは、入力された文字列が完全一致か、大文字小文字を無視した一致かを判定し、それぞれ適切なメッセージを出力します。