Comparaison des chaînes de caractère dans Kotlin


Dans ce tutoriel, nous allons découvrir comment comparer deux chaînes de caractère dans Kotlin. Dans kotlin vous pouvez comparer deux chaines de caractère de plusieurs manières.

Si vous souhaiter savoir comment utiliser les chaines de caractère en Kotlin. Vous pouvez commencer par lire ce tutoriel.

Table des matières

Comparaison de chaînes de caractère en utilisant l’opérateur ==

Vous pouvez comparer légalité structurelle de deux chaînes de caractère en utilisant l’opérateur ==. En fait utiliser l’opérateur == pour comparer deux chaînes de caractère est équivalent à utilisé le méthode equals. Donc l’opérateur == est transformé en la méthode equals comme suit a == ba?.equals(b) ?: (b === null) grâce au système d’operator overloading de kotlin .

Je souhaite attirer votre attention sur l’égalité structurelle de deux chaînes de caractère qui permet juste de comparer l’ensemble des caractère pour déterminer si deux chaîne de caractères avec l’opérateur == contrairement à l’opérateur === qui permet de vérifier si deux chaînes de caractère font référence au même objet.

Voici un exemple qui illustre l’utilisation de l’opérateur ==

val s1: String = "Jeu"
val s2: String = "Jeu"
if(s1==s2) println("Il y a égalité") else println("Pas d'égalité")

Résultat: Il y a égalité

Comparaison de deux chaînes de caractère en utilisant la méthode equals

Vous pouvez aussi comparer deux chaînes de caractère en utilisant la méthode equals. Le méthode equals retourne le même résultat que l’opérateur ==.

val s1: String = "Jeu"
val s2: String = "Jeu"
if(s1.equals(s1)) println("Il y a égalité") else println("Pas d'égalité")

La méthode equals possède un deuxième paramètre booléen qui permet de spécifier si Kotlin doit tenir compte de la casse lors de la comparaison.

val s1: String = "Jeu"
 val s2: String = "Jeu"
 if(s1.equals(s1,true)) println("Il y a égalité") else println("Pas d'égalité")

Résultat: Il y a égalité

Dans l’exemple précédent, la valeur de l’argument ignoreCase est à true pour indiquer à kotlin de ne pas tenir compte de la casse lors de la comparaison.

Comparer deux chaînes de caractère en utilisant la méthode compareTo.

Comme avec le méthode equals, la méthode compareTo vous permet de comparer deux chaînes de caractère de manière structurelle.

Par exemple pour deux chaînes de caractère a et b. La méthode compareTo retourne 0 si a et b sont égales, retourne une valeur positive si a est supérieur à b et retourne une valeur négative si a est inférieur à b.

Nous allons illustré tout cela avec des exemples

val s1: String = "ab"
val s2: String = "ab"
   if(s1.compareTo(s2)==0) {
     println("Il y a égalité")
   } 
   else if(s1.compareTo(s2)>0){
     println("$s1 est plus grand que $s2")
   }
  else if(s1.compareTo(s2)<0){
     println("$s1 est inférieur à $s2")
   }

Résultat: Il y a égalité

Dans l’ exemple précédent, la méthode compareTo retourne 0 puisque les deux chaînes de caractères sont a priori égales.

La méthode compareTo retourne une valeur positive

 val s1: String = "abc"
 val s2: String = "ab"
   if(s1.compareTo(s2)==0) {
     println("Il y a égalité")
   }
   else if(s1.compareTo(s2)>0){
     println("$s1 est plus grand que $s2")
   }
  else if(s1.compareTo(s2)<0){
     println("$s1 est inférieur à $s2")
   }

Résultat: abc est plus grand que ab

Dans cette exemple la méthode compareTo retourne une valeur positive car s1 est supérieur à s1.

La méthode compareTo retourne une valeur négative

 val s1: String = "abc"
 val s2: String = "abcd"
   if(s1.compareTo(s2)==0) {
     println("Il y a égalité")
   }
   else if(s1.compareTo(s2)>0){
     println("$s1 est plus grand que $s2")
   }
  else if(s1.compareTo(s2)<0){
     println("$s1 est inférieur à $s2")
   }

Des ce cas la méthode compareTo retourne une valeur négative car s1 est inférieur à s2.

La méthode compareTo possède un paramètre booléens permettant à kotlin de savoir si la comparaison se fera en tenant compte de la casse

val s1: String = "abc"
val s2: String = "ABC"
   if(s1.compareTo(s2,false)==0) {
     println("Il y a égalité")
   }
   else if(s1.compareTo(s2,false)>0){
     println("$s1 est plus grand que $s2")
   }
  else if(s1.compareTo(s2,false)<0){
     println("$s1 est inférieur à $s2")
   }

Dans ce exemple le paramètre ignorecase de sensibilité à la casse a été mis à false pour demander à Kotlin de tenir compte de la casse lors de la comparaison

Conclusion

Voila, nous sommes à la fin de ce tutoriel dans lequel nous avons appris comment comparer deux chaînes de caractère. J’espère que ce tutoriel vous aidera.A bientôt pour un nouveau tutoriel.

Autres Ressources

https://kotlinlang.org/docs/reference/equality.html


Laisser un commentaire

Résoudre : *
16 + 21 =


%d