La chaîne est une séquence de caractères. En Java, les objets String sont immuables, ce qui signifie qu'ils sont constants et ne peuvent pas être modifiés une fois créés.
exception personnalisée en Java
Méthodes pour comparer des chaînes en Java
Vous trouverez ci-dessous 5 façons de comparer deux Cordes en Java :
- Utilisation d'une fonction définie par l'utilisateur
- Utilisation de String.equals()
- Utilisation de String.equalsIgnoreCase()
- Utiliser Objects.equals()
- Utilisation de String.compareTo()
1. Utilisation de la fonction définie par l'utilisateur :
Définissez une fonction pour comparer les valeurs avec les conditions suivantes :
- si (string1> string2) il renvoie un valeur positive .
- si les deux chaînes sont égales lexicographiquement, c'est-à-dire (string1 == string2), cela renvoie 0 .
- si (chaîne1
valeur négative .
2. Utilisation de String.equals() :
En Java, la méthode string equals() compare les deux chaînes données en fonction des données/du contenu de la chaîne. Si tout le contenu des deux chaînes est identique, cela renvoie vrai. Si un caractère ne correspond pas, il renvoie false.
Syntaxe:
str1.equals(str2);>
Ici, str1 et str2 sont toutes deux les chaînes à comparer.
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>
Programme:
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)); } }>
Sortir
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : false Comparing Geeksforgeeks and Geeks : false>
3. Utilisation de String.equalsIgnoreCase() :
Le String.equalsIgnoreCase() La méthode compare deux chaînes quelle que soit la casse (inférieure ou supérieure) de la chaîne. Cette méthode renvoie vrai si l'argument n'est pas nul et que le contenu des deux chaînes est le même en ignorant la casse, sinon faux. Syntaxe:
str2.equalsIgnoreCase(str1);>
Ici, str1 et str2 sont toutes deux les chaînes à comparer.
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>
Programme:
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)); } }>
Sortir
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : true Comparing Geeksforgeeks and Geeks : false>
4. Utilisation d'Objects.equals() :
Objet.equals (Objet a, Objet b) La méthode renvoie vrai si les arguments sont égaux et faux sinon. Par conséquent, si les deux arguments sont nuls, true est renvoyé et si exactement un argument est nul, false est renvoyé. Sinon, l'égalité est déterminée en utilisant la méthode equals() du premier argument. Syntaxe:
public static boolean equals(Object a, Object b)>
Ici, a et b sont tous deux les objets chaîne qui doivent être comparés.
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>
Programme:
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)); } }>
Sortir
Comparing Geeksforgeeks and Geeks : false Comparing Geeks and Geeks : true Comparing Geeksforgeeks and null : false Comparing null and null : true>
5. Utilisation de String.compareTo() pour comparer deux chaînes
Syntaxe de String compareTo()
int str1.compareTo(String str2)>
Fonctionnement: Il compare et renvoie les valeurs suivantes comme suit :
- si (string1> string2) il renvoie un valeur positive .
- si les deux chaînes sont égales lexicographiquement, c'est-à-dire (string1 == string2), cela renvoie 0 .
- si (chaîne1
valeur négative .
Ci-dessous la mise en œuvre de la méthode ci-dessus
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); } }>
Sortir
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>
Note: La chaîne NULL ne peut pas être transmise comme argument à la méthode compareTo().
Pour en savoir plus sur le sujet, consultez le String.compareTo() article.
Pourquoi ne pas utiliser == pour la comparaison des chaînes ?
En général, les deux équivaut à() et == Les opérateurs en Java sont utilisés pour comparer des objets afin de vérifier l'égalité, mais voici quelques-unes des différences entre les deux :
- La principale différence entre la méthode .equals() et l'opérateur == est que l'une est la méthode et l'autre l'opérateur.
- On peut utiliser les opérateurs == pour la comparaison de références (comparaison d'adresses) et la méthode .equals() pour comparaison de contenu .
- s1 et s2 font tous deux référence à des objets différents.
- Lorsque l'on utilise l'opérateur == pour la comparaison s1 et s2, le résultat est faux car les deux ont des adresses différentes en mémoire.
- En utilisant égal, le résultat est vrai car il compare uniquement les valeurs données dans s1 et s2.
Pour en savoir plus sur le sujet, consultez le comparaison de chaînes article.