Virkne ir rakstzīmju secība. Java programmā String objekti ir nemainīgi, kas nozīmē, ka tie ir nemainīgi un tos nevar mainīt pēc izveides.
: java
Stringu salīdzināšanas metodes Java
Zemāk ir 5 veidi, kā salīdzināt divus Stīgas Java valodā:
- Izmantojot lietotāja definētu funkciju
- String.equals() izmantošana
- String.equalsIgnoreCase() izmantošana
- Izmantojot objektus Objects.equals()
- String.compareTo() izmantošana
1. Lietotāja definētas funkcijas izmantošana:
Definējiet funkciju, lai salīdzinātu vērtības ar šādiem nosacījumiem:
- ja (string1> virkne2) tas atgriež a pozitīva vērtība .
- ja abas virknes leksikogrāfiski ir vienādas, t.i., (string1 == virkne2), tas atgriež 0 .
- if (string1
negatīva vērtība .
2. Izmantojot String.equals() :
Java programmā string equals () metode salīdzina divas norādītās virknes, pamatojoties uz virknes datiem/saturu. Ja viss abu virkņu saturs ir vienāds, tas atgriež patieso vērtību. Ja kāda rakstzīme neatbilst, tā atgriež false.
Sintakse:
str1.equals(str2);>
Šeit gan str1, gan str2 ir salīdzināmās virknes.
Piemēri:
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)); } }>
Izvade
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : false Comparing Geeksforgeeks and Geeks : false>
3. String.equalsIgnoreCase() izmantošana:
The String.equalsIgnoreCase() metode salīdzina divas virknes neatkarīgi no virknes reģistra (apakšējā vai augšējā). Šī metode atgriež patieso vērtību, ja arguments nav nulle un abu virkņu saturs ir vienāds, ignorējot reģistru, pretējā gadījumā atgriež vērtību false. Sintakse:
str2.equalsIgnoreCase(str1);>
Šeit gan str1, gan str2 ir salīdzināmās virknes.
Piemēri:
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)); } }>
Izvade
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : true Comparing Geeksforgeeks and Geeks : false>
4. Izmantojot Objects.equals() :
Object.equals (Objekts a, Objekts b) metode atgriež true, ja argumenti ir vienādi viens ar otru, un false pretējā gadījumā. Līdz ar to, ja abi argumenti ir nulles, tiek atgriezts patiess, un, ja tieši viens arguments ir nulle, tiek atgriezts false. Pretējā gadījumā vienlīdzību nosaka, izmantojot pirmā argumenta metodi equals(). Sintakse:
public static boolean equals(Object a, Object b)>
Šeit gan a, gan b ir salīdzināmie virknes objekti.
Piemēri:
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)); } }>
Izvade
Comparing Geeksforgeeks and Geeks : false Comparing Geeks and Geeks : true Comparing Geeksforgeeks and null : false Comparing null and null : true>
5. String.compareTo() izmantošana divu virkņu salīdzināšanai
Virknes salīdzina() sintakse
int str1.compareTo(String str2)>
Darbojas: Tas salīdzina un atgriež šādas vērtības šādi:
- ja (string1> virkne2) tas atgriež a pozitīva vērtība .
- ja abas virknes leksikogrāfiski ir vienādas, t.i., (string1 == virkne2), tas atgriež 0 .
- if (string1
negatīva vērtība .
Zemāk ir aprakstīta iepriekš minētās metodes ieviešana
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); } }>
Izvade
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>
Piezīme: NULL virkni nevar nodot kā argumentu salīdzinātTo() metodei.
Lai uzzinātu vairāk par tēmu, skatiet String.compareTo() rakstu.
Kāpēc virkņu salīdzināšanai neizmantot ==?
Kopumā gan vienāds () un == Java operatori tiek izmantoti, lai salīdzinātu objektus, lai pārbaudītu vienlīdzību, taču šeit ir dažas atšķirības starp abiem:
- Galvenā atšķirība starp .equals() metodi un == operatoru ir tā, ka viena ir metode, bet otra ir operators.
- Atsauces salīdzināšanai var izmantot == operatorus (adreses salīdzinājums) un .equals() metodi satura salīdzinājums .
- Gan s1, gan s2 attiecas uz dažādiem objektiem.
- Ja s1 un s2 salīdzināšanai tiek izmantots == operators, rezultāts ir nepatiess, jo abām atmiņā ir dažādas adreses.
- Izmantojot vienādus, rezultāts ir patiess, jo tas tikai salīdzina vērtības, kas norādītas s1 un s2.
Lai uzzinātu vairāk par tēmu, skatiet stīgu salīdzinājums rakstu.