logo

Vergelijk twee strings in Java

De string is een reeks tekens. In Java zijn objecten van String onveranderlijk, wat betekent dat ze constant zijn en niet meer kunnen worden gewijzigd nadat ze zijn gemaakt.

lijstknooppunt in Java

Methoden om tekenreeksen in Java te vergelijken

Hieronder staan ​​vijf manieren om er twee te vergelijken Snaren op Java:



  1. Door de gebruiker gedefinieerde functie gebruiken
  2. String.equals() gebruiken
  3. String.equalsIgnoreCase() gebruiken
  4. Objects.equals() gebruiken
  5. String.compareTo() gebruiken

1. Door de gebruiker gedefinieerde functie gebruiken:

Definieer een functie om waarden te vergelijken met de volgende voorwaarden:

  1. if (string1> string2) retourneert a positieve waarde .
  2. als beide strings lexicografisch gelijk zijn, d.w.z. (string1 == string2), retourneert het 0 .
  3. als (tekenreeks1 negatieve waarde .

2. String.equals() gebruiken:

In Java vergelijkt de methode string equals() de twee gegeven strings op basis van de gegevens/inhoud van de string. Als alle inhoud van beide strings hetzelfde is, retourneert het waar. Als een teken niet overeenkomt, retourneert het false.

Syntaxis:



str1.equals(str2);>

Hier zijn str1 en str2 beide de strings die moeten worden vergeleken.

Voorbeelden:

  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>

Programma:



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

Uitvoer
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : false Comparing Geeksforgeeks and Geeks : false>

3. String.equalsIgnoreCase() gebruiken:

De String.equalsIgnoreCase() methode vergelijkt twee strings, ongeacht de hoofdletter (onder of boven) van de string. Deze methode retourneert true als het argument niet nul is en de inhoud van beide strings hetzelfde is, waarbij hoofdletters en kleine letters worden genegeerd, anders false. Syntaxis:

str2.equalsIgnoreCase(str1);>

Hier zijn str1 en str2 beide de strings die moeten worden vergeleken.

Voorbeelden:

  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>

Programma:

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

Uitvoer
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : true Comparing Geeksforgeeks and Geeks : false>

4. Objects.equals() gebruiken:

Object.is gelijk aan(Object a, Object b) methode retourneert waar als de argumenten gelijk zijn aan elkaar en anders onwaar. Als beide argumenten null zijn, wordt dus true geretourneerd en als precies één argument nul is, wordt false geretourneerd. Anders wordt gelijkheid bepaald met behulp van de equals()-methode van het eerste argument. Syntaxis:

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

Hier zijn a en b beide de stringobjecten die moeten worden vergeleken.

Voorbeelden:

  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>

Programma:

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

Uitvoer
Comparing Geeksforgeeks and Geeks : false Comparing Geeks and Geeks : true Comparing Geeksforgeeks and null : false Comparing null and null : true>

5. String.compareTo() gebruiken voor het vergelijken van twee strings

Syntaxis van tekenreeks CompareTo()

int str1.compareTo(String str2)>

Werkend: Het vergelijkt en retourneert de volgende waarden als volgt:

  1. if (string1> string2) retourneert a positieve waarde .
  2. als beide strings lexicografisch gelijk zijn, d.w.z. (string1 == string2), retourneert het 0 .
  3. als (tekenreeks1 negatieve waarde .

Hieronder vindt u de implementatie van de bovenstaande methode

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

Uitvoer
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>

Opmerking: De NULL-tekenreeks kan niet worden doorgegeven als argument voor de methode CompareTo().

Voor meer informatie over het onderwerp verwijzen wij u naar de String.vergelijkTo() artikel.

Waarom gebruik je == niet voor de vergelijking van Strings?

Over het algemeen beide is gelijk aan() En == operatoren in Java worden gebruikt om objecten te vergelijken om de gelijkheid te controleren, maar hier zijn enkele verschillen tussen de twee:

  1. Het belangrijkste verschil tussen de methode .equals() en de operator == is dat de ene de methode is en de andere de operator.
  2. Men kan == operatoren gebruiken voor referentievergelijking (adresvergelijking) en de .equals() methode voor inhoud vergelijking .
    • Zowel s1 als s2 verwijzen naar verschillende objecten.
    • Wanneer men de operator == gebruikt voor de vergelijking s1 en s2, is het resultaat onwaar omdat beide verschillende adressen in het geheugen hebben.
    • Als u gelijken gebruikt, is het resultaat waar, omdat het alleen de waarden in s1 en s2 vergelijkt.

Voor meer informatie over het onderwerp verwijzen wij u naar de vergelijking van snaren artikel.