La cadena és una seqüència de caràcters. A Java, els objectes de String són immutables, el que significa que són constants i no es poden canviar un cop creats.
llançar llançaments en java
Mètodes per comparar cadenes a Java
A continuació es mostren 5 maneres de comparar-ne dues Cordes en Java:
- Utilitzant la funció definida per l'usuari
- Utilitzant String.equals()
- Utilitzant String.equalsIgnoreCase()
- Utilitzant Objects.equals()
- Utilitzant String.compareTo()
1. Ús de la funció definida per l'usuari:
Definiu una funció per comparar valors amb les condicions següents:
- si (cadena1> cadena2) retorna a valor positiu .
- si les dues cadenes són iguals lexicogràficament, és a dir (cadena1 == cadena2) retorna 0 .
- si (cadena 1
valor negatiu .
2. Utilitzant String.equals():
A Java, el mètode string equals() compara les dues cadenes donades en funció de les dades/contingut de la cadena. Si tots els continguts de les dues cadenes són iguals, retorna cert. Si algun caràcter no coincideix, retorna fals.
Sintaxi:
str1.equals(str2);>
Aquí str1 i str2 són les cadenes que s'han de comparar.
Exemples:
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)); } }> Sortida
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : false Comparing Geeksforgeeks and Geeks : false>
3. Utilitzant String.equalsIgnoreCase():
El String.equalsIgnoreCase() El mètode compara dues cadenes independentment del cas (inferior o superior) de la cadena. Aquest mètode retorna true si l'argument no és nul i el contingut de les dues cadenes és el mateix ignorant majúscules i minúscules, en cas contrari, fals. Sintaxi:
str2.equalsIgnoreCase(str1);>
Aquí str1 i str2 són les cadenes que s'han de comparar.
Exemples:
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)); } }> Sortida
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : true Comparing Geeksforgeeks and Geeks : false>
4. Utilitzant Objects.equals():
Object.equals (Objecte a, Objecte b) El mètode retorna true si els arguments són iguals entre si i fals en cas contrari. En conseqüència, si tots dos arguments són nuls, es retorna true i si exactament un argument és nul, es retorna false. En cas contrari, la igualtat es determina utilitzant el mètode equals() del primer argument. Sintaxi:
public static boolean equals(Object a, Object b)>
Aquí a i b són els objectes de cadena que s'han de comparar.
Exemples:
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)); } }> Sortida
Comparing Geeksforgeeks and Geeks : false Comparing Geeks and Geeks : true Comparing Geeksforgeeks and null : false Comparing null and null : true>
5. Utilitzant String.compareTo() per comparar dues cadenes
Sintaxi de String compareTo()
int str1.compareTo(String str2)>
Treball: Compara i retorna els valors següents de la manera següent:
- si (cadena1> cadena2) retorna a valor positiu .
- si les dues cadenes són iguals lexicogràficament, és a dir (cadena1 == cadena2) retorna 0 .
- si (cadena 1
valor negatiu .
A continuació es mostra la implementació del mètode anterior
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); } }> Sortida
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>
Nota: La cadena NULL no es pot passar com a argument al mètode compareTo().
Per saber més sobre el tema consulteu el String.compareTo() article.
Per què no utilitzar == per a la comparació de cadenes?
En general, tots dos és igual() i == Els operadors de Java s'utilitzen per comparar objectes per comprovar la igualtat, però aquí hi ha algunes de les diferències entre els dos:
- La diferència principal entre el mètode .equals() i l'operador == és que un és el mètode i l'altre és l'operador.
- Es poden utilitzar operadors == per a la comparació de referència (comparació d'adreces) i el mètode .equals() per comparació de continguts .
- Tant s1 com s2 es refereixen a diferents objectes.
- Quan s'utilitza l'operador == per a la comparació s1 i s2, el resultat és fals ja que tots dos tenen adreces diferents a la memòria.
- Utilitzant iguals, el resultat és cert perquè només compara els valors donats a s1 i s2.
Per saber més sobre el tema consulteu el comparació de cordes article.