logo

Java で 2 つの文字列を比較する

文字列は一連の文字です。 Java では、String のオブジェクトは不変です。これは、オブジェクトが定数であり、一度作成すると変更できないことを意味します。

charをint Javaに変換します

Java で文字列を比較するメソッド

以下に 2 つを比較する 5 つの方法を示します 文字列 Javaでは:



  1. ユーザー定義関数の使用
  2. String.equals() の使用
  3. String.equalsIgnoreCase() の使用
  4. Objects.equals() の使用
  5. String.compareTo() の使用

1. ユーザー定義関数の使用:

次の条件で値を比較する関数を定義します。

  1. (string1> string2) の場合は、 正の値
  2. 両方の文字列が辞書編集的に等しい場合、つまり (string1 == string2) を返します。 0
  3. if (文字列1 負の値

2. String.equals() の使用:

Java では、stringquals() メソッドは、文字列のデータ/内容に基づいて、指定された 2 つの文字列を比較します。両方の文字列の内容がすべて同じであれば、true を返します。一致しない文字がある場合は false を返します。

構文:



str1.equals(str2);>

ここで、str1 と str2 は両方とも比較される文字列です。

例:

  Input 1:   techcodeview.com   Input 2:   Practice   Output:   false   Input 1:   Geeks   Input 2:   Geeks   Output:   true   Input 1:   geeks   Input 2:   Geeks   Output:   false>

プログラム:



ジャワ
// Java program to Compare two strings // lexicographically public class GFG {  public static void main(String args[])  {  String string1 = new String('Geeksforgeeks');  String string2 = new String('Practice');  String string3 = new String('Geeks');  String string4 = new String('Geeks');  String string5 = new String('geeks');  // Comparing for String 1 != String 2  System.out.println('Comparing ' + string1 + ' and '  + string2 + ' : '  + string1.equals(string2));  // Comparing for String 3 = String 4  System.out.println('Comparing ' + string3 + ' and '  + string4 + ' : '  + string3.equals(string4));  // Comparing for String 4 != String 5  System.out.println('Comparing ' + string4 + ' and '  + string5 + ' : '  + string4.equals(string5));  // Comparing for String 1 != String 4  System.out.println('Comparing ' + string1 + ' and '  + string4 + ' : '  + string1.equals(string4));  } }>

出力
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : false Comparing Geeksforgeeks and Geeks : false>

3. String.equalsIgnoreCase() の使用:

String.equalsIgnoreCase() このメソッドは、文字列の大文字と小文字 (小文字または大文字) に関係なく 2 つの文字列を比較します。このメソッドは、引数が null でなく、両方の文字列の内容が大文字と小文字を無視して同じである場合は true を返し、それ以外の場合は false を返します。 構文:

str2.equalsIgnoreCase(str1);>

ここで、str1 と str2 は両方とも比較される文字列です。

例:

  Input 1:   techcodeview.com   Input 2:   Practice   Output:   false   Input 1:   Geeks   Input 2:   Geeks   Output:   true   Input 1:   geeks   Input 2:   Geeks   Output:   true>

プログラム:

ジャワ
// Java program to Compare two strings // lexicographically public class GFG {  public static void main(String args[])  {  String string1 = new String('Geeksforgeeks');  String string2 = new String('Practice');  String string3 = new String('Geeks');  String string4 = new String('Geeks');  String string5 = new String('geeks');  // Comparing for String 1 != String 2  System.out.println(  'Comparing ' + string1 + ' and ' + string2  + ' : ' + string1.equalsIgnoreCase(string2));  // Comparing for String 3 = String 4  System.out.println(  'Comparing ' + string3 + ' and ' + string4  + ' : ' + string3.equalsIgnoreCase(string4));  // Comparing for String 4 = String 5  System.out.println(  'Comparing ' + string4 + ' and ' + string5  + ' : ' + string4.equalsIgnoreCase(string5));  // Comparing for String 1 != String 4  System.out.println(  'Comparing ' + string1 + ' and ' + string4  + ' : ' + string1.equalsIgnoreCase(string4));  } }>

出力
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : true Comparing Geeksforgeeks and Geeks : false>

4. Objects.equals() の使用:

Object.equals(オブジェクト a, オブジェクト b) このメソッドは、引数が互いに等しい場合は true を返し、そうでない場合は false を返します。したがって、両方の引数が null の場合は true が返され、一方の引数だけが null の場合は false が返されます。それ以外の場合、最初の引数のequals()メソッドを使用して等しいかどうかが判断されます。 構文:

public static boolean equals(Object a, Object b)>

ここで、a と b は両方とも比較される文字列オブジェクトです。

例:

  Input 1:   techcodeview.com   Input 2:   Practice   Output:   false   Input 1:   Geeks   Input 2:   Geeks   Output:   true   Input 1:   null   Input 2:   null   Output:   true>

プログラム:

ジャワ
// Java program to Compare two strings // lexicographically import java.util.*; public class GFG {  public static void main(String args[])  {  String string1 = new String('Geeksforgeeks');  String string2 = new String('Geeks');  String string3 = new String('Geeks');  String string4 = null;  String string5 = null;  // Comparing for String 1 != String 2  System.out.println(  'Comparing ' + string1 + ' and ' + string2  + ' : ' + Objects.equals(string1, string2));  // Comparing for String 2 = String 3  System.out.println(  'Comparing ' + string2 + ' and ' + string3  + ' : ' + Objects.equals(string2, string3));  // Comparing for String 1 != String 4  System.out.println(  'Comparing ' + string1 + ' and ' + string4  + ' : ' + Objects.equals(string1, string4));  // Comparing for String 4 = String 5  System.out.println(  'Comparing ' + string4 + ' and ' + string5  + ' : ' + Objects.equals(string4, string5));  } }>

出力
Comparing Geeksforgeeks and Geeks : false Comparing Geeks and Geeks : true Comparing Geeksforgeeks and null : false Comparing null and null : true>

5. String.compareTo() を使用して 2 つの文字列を比較する

String CompareTo() の構文

int str1.compareTo(String str2)>

働く: 次のように、次の値を比較して返します。

  1. (string1> string2) の場合は、 正の値
  2. 両方の文字列が辞書編集的に等しい場合、つまり (string1 == string2) を返します。 0
  3. if (文字列1 負の値

以下は上記のメソッドの実装です

ジャワ
// Java program to Compare two strings // Using String.compareTo()  import java.util.*; // Diver Class public class GFG {  public static void check(String string1, String string2)  {  if (string1.compareTo(string2)!=0) {  System.out.println(string1 + ' ' + string2  + ' : Not Equal');  }  else {  System.out.println(string1 + ' ' + string2  + ' : Equal');  }  }  // main function  public static void main(String args[])  {  String string1 = new String('Geeksforgeeks');  String string2 = new String('Geeks');  String string3 = new String('Geeks');  String string4 = ' ';  String string5 = ' ';  // Comparing for String 1 != String 2  check(string1, string2);  // Comparing for String 2 = String 3  check(string2, string3);  // Comparing for String 1 != String 4  check(string1, string4);  // Comparing for String 4 = String 5  check(string4, string5);  } }>

出力
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>

注記: NULL 文字列を引数として CompareTo() メソッドに渡すことはできません。

このトピックについて詳しくは、を参照してください。 String.compareTo() 記事。

文字列の比較に == を使用しないのはなぜでしょうか?

一般に、両方とも 等しい() そして == Java の演算子は、オブジェクトを比較して等しいかどうかを確認するために使用されますが、この 2 つの演算子の違いの一部を次に示します。

  1. .equals() メソッドと == 演算子の主な違いは、一方がメソッドであり、もう一方が演算子であることです。
  2. 参照比較には == 演算子を使用できます (アドレス比較) および .equals() メソッド 内容比較
    • s1 と s2 は両方とも異なるオブジェクトを参照します。
    • s1 と s2 の比較に == 演算子を使用すると、両方のメモリ内のアドレスが異なるため、結果は false になります。
    • 等号を使用すると、s1 と s2 で指定された値のみを比較しているため、結果は true になります。

このトピックについて詳しくは、を参照してください。 文字列の比較 記事。