logo

Sammenlign to strenger i Java

Strengen er en sekvens av tegn. I Java er objekter av String uforanderlige, noe som betyr at de er konstante og ikke kan endres når de først er opprettet.

legge inn streng i java

Metoder for å sammenligne strenger i Java

Nedenfor er 5 måter å sammenligne to på Strenger i Java:



  1. Bruker brukerdefinert funksjon
  2. Bruke String.equals()
  3. Bruke String.equalsIgnoreCase()
  4. Bruke Objects.equals()
  5. Bruke String.compareTo()

1. Bruke brukerdefinert funksjon:

Definer en funksjon for å sammenligne verdier med følgende betingelser:

  1. if (streng1> streng2) returnerer den en positiv verdi .
  2. hvis begge strengene er like leksikografisk, dvs. (streng1 == streng2) returnerer den 0 .
  3. if (streng1 negativ verdi .

2. Bruke String.equals() :

I Java sammenligner string equals()-metoden de to gitte strengene basert på data/innhold i strengen. Hvis alt innholdet i begge strengene er det samme, returnerer det sant. Hvis et tegn ikke stemmer, returnerer det usann.

Syntaks:



str1.equals(str2);>

Her er str1 og str2 begge strengene som skal sammenlignes.

Eksempler:

  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:



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

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

3. Bruke String.equalsIgnoreCase() :

De String.equalsIgnoreCase() metoden sammenligner to strenger uavhengig av tilfellet (nedre eller øvre) av strengen. Denne metoden returnerer true hvis argumentet ikke er null og innholdet i begge strengene er samme ignorerende store og små bokstaver, ellers usann. Syntaks:

str2.equalsIgnoreCase(str1);>

Her er str1 og str2 begge strengene som skal sammenlignes.

Eksempler:

  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:

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

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

4. Bruke Objects.equals() :

Object.equals(Objekt a, Objekt b) metoden returnerer true hvis argumentene er like med hverandre og usann ellers. Følgelig, hvis begge argumentene er null, returneres true og hvis nøyaktig ett argument er null, returneres false. Ellers bestemmes likhet ved å bruke equals()-metoden til det første argumentet. Syntaks:

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

Her er a og b begge strengobjektene som skal sammenlignes.

Eksempler:

  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:

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

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

5. Bruke String.compareTo() for å sammenligne to strenger

Syntaks for String compareTo()

int str1.compareTo(String str2)>

Arbeider: Den sammenligner og returnerer følgende verdier som følger:

  1. if (streng1> streng2) returnerer den en positiv verdi .
  2. hvis begge strengene er like leksikografisk, dvs. (streng1 == streng2) returnerer den 0 .
  3. if (streng1 negativ verdi .

Nedenfor er implementeringen av metoden ovenfor

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

Produksjon
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>

Merk: NULL-strengen kan ikke sendes som et argument for compareTo()-metoden.

For å vite mer om emnet, se String.compareTo() artikkel.

Hvorfor ikke bruke == for sammenligning av strenger?

Generelt begge deler er lik() og == operatører i Java brukes til å sammenligne objekter for å sjekke likhet, men her er noen av forskjellene mellom de to:

  1. Hovedforskjellen mellom .equals()-metoden og ==-operatoren er at den ene er metoden og den andre er operatoren.
  2. Man kan bruke ==-operatorer for referansesammenligning (adressesammenligning) og .equals()-metoden for sammenligning av innhold .
    • Både s1 og s2 refererer til forskjellige objekter.
    • Når man bruker ==-operatoren for s1- og s2-sammenligningen, er resultatet usant da begge har forskjellige adresser i minnet.
    • Ved å bruke lik, er resultatet sant fordi det bare sammenligner verdiene gitt i s1 og s2.

For å vite mer om emnet, se sammenligning av strenger artikkel.