logo

Porównaj dwa ciągi w Javie

Ciąg znaków to ciąg znaków. W Javie obiekty String są niezmienne, co oznacza, że ​​są stałe i nie można ich zmienić po utworzeniu.

Java odczytuje plik CSV

Metody porównywania ciągów w Javie

Poniżej znajduje się 5 sposobów porównania dwóch Smyczki w Javie:



  1. Korzystanie z funkcji zdefiniowanej przez użytkownika
  2. Korzystanie z metody String.equals()
  3. Korzystanie z metody String.equalsIgnoreCase()
  4. Korzystanie z metody Objects.equals()
  5. Korzystanie z metody String.compareTo()

1. Korzystanie z funkcji zdefiniowanej przez użytkownika:

Zdefiniuj funkcję porównującą wartości przy spełnieniu następujących warunków:

  1. if (ciąg1> ciąg2) zwraca a wartość dodatnia .
  2. jeśli oba ciągi są równe leksykograficznie, tj. (ciąg1 == ciąg2), zwraca 0 .
  3. jeśli (ciąg1 ujemna wartość .

2. Używanie String.equals() :

W Javie metoda string równa się() porównuje dwa podane ciągi na podstawie danych/zawartości ciągu. Jeśli cała zawartość obu ciągów jest taka sama, zwraca wartość true. Jeśli którykolwiek znak nie pasuje, zwraca wartość false.

Składnia:



str1.equals(str2);>

Tutaj str1 i str2 są ciągami, które mają zostać porównane.

Przykłady:

  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>

Program:



Jawa
// 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));  } }>

Wyjście
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : false Comparing Geeksforgeeks and Geeks : false>

3. Używanie String.equalsIgnoreCase() :

The String.equalsIgnoreCase() Metoda porównuje dwa ciągi znaków niezależnie od wielkości liter (mała lub duża) ciągu. Ta metoda zwraca wartość true, jeśli argument nie ma wartości null, a zawartość obu ciągów jest taka sama, ignorując wielkość liter, w przeciwnym razie wartość false. Składnia:

str2.equalsIgnoreCase(str1);>

Tutaj str1 i str2 są ciągami, które mają zostać porównane.

Przykłady:

  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>

Program:

Jawa
// 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));  } }>

Wyjście
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : true Comparing Geeksforgeeks and Geeks : false>

4. Używanie Objects.equals() :

Obiekt.equals(Obiekt a, Obiekt b) metoda zwraca wartość true, jeśli argumenty są sobie równe, lub false w przeciwnym razie. W rezultacie, jeśli oba argumenty mają wartość null, zwracana jest wartość true, a jeśli dokładnie jeden argument ma wartość null, zwracana jest wartość false. W przeciwnym razie równość jest określana przy użyciu metody równości() pierwszego argumentu. Składnia:

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

Tutaj a i b są obiektami łańcuchowymi, które mają zostać porównane.

Przykłady:

  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>

Program:

Jawa
// 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));  } }>

Wyjście
Comparing Geeksforgeeks and Geeks : false Comparing Geeks and Geeks : true Comparing Geeksforgeeks and null : false Comparing null and null : true>

5. Używanie metody String.compareTo() do porównywania dwóch ciągów znaków

Składnia ciągu CompareTo()

int str1.compareTo(String str2)>

Pracujący: Porównuje i zwraca następujące wartości w następujący sposób:

  1. if (ciąg1> ciąg2) zwraca a wartość dodatnia .
  2. jeśli oba ciągi są równe leksykograficznie, tj. (ciąg1 == ciąg2), zwraca 0 .
  3. jeśli (ciąg1 ujemna wartość .

Poniżej implementacja powyższej metody

Jawa
// 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);  } }>

Wyjście
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>

Notatka: Nie można przekazać łańcucha NULL jako argumentu do metody CompareTo().

Aby dowiedzieć się więcej na ten temat, zob String.compareTo() artykuł.

Dlaczego nie użyć == do porównania ciągów znaków?

Ogólnie rzecz biorąc, jedno i drugie równa się() I == operatory w Javie służą do porównywania obiektów w celu sprawdzenia równości, ale oto niektóre różnice między nimi:

  1. Główna różnica między metodą .equals() a operatorem == polega na tym, że jedna jest metodą, a druga operatorem.
  2. Do porównania referencji można użyć operatorów == (porównanie adresów) oraz metoda .equals() dla porównanie treści .
    • Zarówno s1, jak i s2 odnoszą się do różnych obiektów.
    • Gdy do porównania s1 i s2 zostanie użyty operator ==, wynik będzie fałszywy, ponieważ oba mają różne adresy w pamięci.
    • Używając równości, wynik jest prawdziwy, ponieważ porównuje tylko wartości podane w s1 i s2.

Aby dowiedzieć się więcej na ten temat, zob porównanie ciągów artykuł.