logo

Palyginkite dvi „Java“ eilutes

Eilutė yra simbolių seka. „Java“ programoje String objektai yra nekintami, o tai reiškia, kad jie yra pastovūs ir jų negalima keisti, kai jie yra sukurti.

ascii lentelė java

„Java“ stygų palyginimo metodai

Žemiau yra 5 būdai, kaip palyginti du Stygos Java kalba:



  1. Naudojant vartotojo apibrėžtą funkciją
  2. Naudojant String.equals()
  3. String.equalsIgnoreCase() naudojimas
  4. Naudojant Objects.equals()
  5. Naudojant String.compareTo()

1. Naudojant vartotojo apibrėžtą funkciją:

Apibrėžkite funkciją, kad palygintumėte reikšmes su šiomis sąlygomis:

  1. jei (eilutė1> eilutė2) grąžina a teigiama vertė .
  2. jei abi eilutės leksikografiškai yra vienodos, t. y. (eilutė1 == eilutė2), ji grąžina 0 .
  3. if (1 eilutė neigiama reikšmė .

2. Naudojant String.equals() :

Java sistemoje string equals () metodas lygina dvi nurodytas eilutes pagal eilutės duomenis / turinį. Jei visas abiejų eilučių turinys yra vienodas, tai grąžinama tiesa. Jei kuris nors simbolis nesutampa, jis grąžina klaidingą.

Sintaksė:



str1.equals(str2);>

Čia str1 ir str2 yra eilutės, kurias reikia palyginti.

Pavyzdžiai:

  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>

Programa:



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

Išvestis
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : false Comparing Geeksforgeeks and Geeks : false>

3. String.equalsIgnoreCase() naudojimas:

The String.equalsIgnoreCase() metodas lygina dvi eilutes, neatsižvelgiant į eilutės didžiąją ir mažąją raidę (apatinę ar viršutinę). Šis metodas grąžina teisingą, jei argumentas nėra nulinis ir abiejų eilučių turinys yra toks pat, ignoruojant didžiąsias ir mažąsias raides, kitu atveju klaidingas. Sintaksė:

str2.equalsIgnoreCase(str1);>

Čia str1 ir str2 yra eilutės, kurias reikia palyginti.

Pavyzdžiai:

  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>

Programa:

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

Išvestis
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : true Comparing Geeksforgeeks and Geeks : false>

4. Objects.equals() naudojimas:

Objektas.lygus (objektas a, objektas b) metodas grąžina teisingą, jei argumentai yra lygūs vienas kitam, o kitu atveju - false. Vadinasi, jei abu argumentai yra nuliniai, grąžinama tiesa, o jei tiksliai vienas argumentas yra nulis, grąžinamas false. Kitu atveju lygybė nustatoma naudojant pirmojo argumento lygybės() metodą. Sintaksė:

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

Čia a ir b yra eilutės objektai, kuriuos reikia palyginti.

Pavyzdžiai:

  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>

Programa:

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

Išvestis
Comparing Geeksforgeeks and Geeks : false Comparing Geeks and Geeks : true Comparing Geeksforgeeks and null : false Comparing null and null : true>

5. String.compareTo() naudojimas dviejų eilučių palyginimui

Eilutės palyginimas su() sintaksė

int str1.compareTo(String str2)>

Dirba: Jis lygina ir grąžina šias reikšmes taip:

  1. if (string1> string2) grąžina a teigiama vertė .
  2. jei abi eilutės leksikografiškai yra vienodos, t. y. (eilutė1 == eilutė2), ji grąžina 0 .
  3. if (1 eilutė neigiama vertė .

Žemiau pateikiamas pirmiau minėto metodo įgyvendinimas

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

Išvestis
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>

Pastaba: NULL eilutė negali būti perduota kaip argumento palyginimasTo() metodui.

Norėdami sužinoti daugiau apie temą, žr String.compareTo() straipsnis.

Kodėl stygų palyginimui nenaudojus ==?

Apskritai, tiek lygus () ir == „Java“ operatoriai naudojami objektams palyginti, kad būtų patikrinta lygybė, tačiau čia yra keletas skirtumų tarp šių dviejų:

  1. Pagrindinis skirtumas tarp .equals() metodo ir == operatoriaus yra tas, kad vienas yra metodas, o kitas yra operatorius.
  2. Palyginimui galima naudoti == operatorius (adresų palyginimas) ir .equals() metodas turinio palyginimas .
    • Tiek s1, tiek s2 nurodo skirtingus objektus.
    • Kai s1 ir s2 palyginimui naudojamas == operatorius, rezultatas yra klaidingas, nes abu turi skirtingus adresus atmintyje.
    • Naudojant lygias, rezultatas yra teisingas, nes lyginamos tik s1 ir s2 nurodytos reikšmės.

Norėdami sužinoti daugiau apie temą, žr stygų palyginimas straipsnis.