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:
- Naudojant vartotojo apibrėžtą funkciją
- Naudojant String.equals()
- String.equalsIgnoreCase() naudojimas
- Naudojant Objects.equals()
- Naudojant String.compareTo()
1. Naudojant vartotojo apibrėžtą funkciją:
Apibrėžkite funkciją, kad palygintumėte reikšmes su šiomis sąlygomis:
- jei (eilutė1> eilutė2) grąžina a teigiama vertė .
- jei abi eilutės leksikografiškai yra vienodos, t. y. (eilutė1 == eilutė2), ji grąžina 0 .
- 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:
- if (string1> string2) grąžina a teigiama vertė .
- jei abi eilutės leksikografiškai yra vienodos, t. y. (eilutė1 == eilutė2), ji grąžina 0 .
- 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ų:
- Pagrindinis skirtumas tarp .equals() metodo ir == operatoriaus yra tas, kad vienas yra metodas, o kitas yra operatorius.
- 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.