Comparer les chaînes dans Scala

Suraj P 30 janvier 2023
  1. Comparer des chaînes à l’aide de la méthode equals() dans Scala
  2. Comparer des chaînes à l’aide de l’opérateur == dans Scala
  3. Égalité en Java et Scala
Comparer les chaînes dans Scala

Dans cet article, nous allons apprendre à comparer deux chaînes dans le langage de programmation Scala.

Deux chaînes sont considérées comme égales si elles ont la même séquence de caractères. Maintenant, regardons différentes approches dans Scala pour comparer les chaînes.

Comparer des chaînes à l’aide de la méthode equals() dans Scala

Dans Scala, la classe String a la méthode equals() pour vérifier l’égalité de deux chaînes.

Syntaxe:

string_one.equals(string_two)

La fonction renvoie true si string_one et string_two sont égaux.

Exemple de code :

object MyClass {

    def main(args: Array[String]) {

        val one = "Tony"
        val two = "Tony"
        val ans = one.equals(two)
        println(ans)

    }
}

Production:

true

Une chose à noter est que la méthode equals() est sensible à la casse, ce qui signifie que tony et Tony sont traités différemment. Pour surmonter cela, nous avons la méthode equalsIgnoreCase() dans la classe String, que nous pouvons utiliser.

Exemple de code :

object MyClass {

    def main(args: Array[String]) {

        val one = "Tony"
        val two = "toNy"
        val ans = one.equalsIgnoreCase(two)
        println(ans)

    }
}

Production:

true

Remarque : Il faut s’assurer que la chaîne appelant la fonction equals() de la classe String (comme la chaîne one dans le code ci-dessus) ne doit pas être null ; sinon, nous aurons une NullPointerException.

Comparer des chaînes à l’aide de l’opérateur == dans Scala

Nous pouvons utiliser la méthode == pour comparer deux chaînes dans Scala.

Syntaxe:

string_one == string_two

La méthode == vérifie l’égalité de string_one et string_two. Elle renvoie true si les deux chaînes sont égales ; sinon, il retourne false.

Exemple de code :

object MyClass {

    def main(args: Array[String]) {

        val one = "tony"
        val two = "tony"
        if(one==two)
           println(true)
        else
        println (false)

    }
}

Production:

true

Si nous savons que les chaînes sont sensibles à la casse, l’un des principaux avantages de l’utilisation de la méthode == par rapport à equals() est qu’elle ne lèvera pas NullPointerException même si l’une des chaînes est null.

Exemple de code :

object MyClass {

    def main(args: Array[String]) {

        val one = "tony"

        if(one == null)
           println(true)
        else
        println (false)

    }
}

Production:

false

Dans le back-end, la méthode == vérifie d’abord les valeurs null, puis appelle la méthode equals() avec le premier objet chaîne pour vérifier leur égalité. Pour cette raison, la méthode == ne compare pas les chaînes en respectant la casse.

Exemple de code :

object MyClass {

    def main(args: Array[String]) {
        val one = "tony"
        val two = "TONY"
        if(one == two)
           println(true)
        else
        println (false)

    }
}

Production:

false

Pour surmonter cette situation de sensibilité à la casse, nous pouvons soit convertir les deux chaînes en majuscules ou en minuscules, puis les comparer.

Exemple de code :

object MyClass {

    def main(args: Array[String]) {
        val one = "tony"
        val two = "TONY"
        if(one.toLowerCase() == two.toLowerCase())
           println(true)
        else
        println (false)

    }
}

Production:

true

Dans le code ci-dessus, nous avons converti les deux chaînes en minuscules à l’aide de la méthode toLowerCase(), puis nous avons utilisé la méthode == pour les comparer.

Égalité en Java et Scala

Java et Scala ont des définitions différentes en matière d’égalité. Java a principalement deux façons de vérifier l’égalité : l’une utilise l’opérateur ==, qui vérifie strictement l’égalité de référence, et l’autre est la méthode equals() qui peut être remplacée pour vérifier le contenu de la objets.

Dans Scala, la méthode == peut être utilisée pour comparer n’importe quel type, ce qui signifie que a==b renverra true s’ils font référence au même objet ou contiennent la même valeur. Et en Scala, la méthode == est une méthode finale définie dans n’importe quelle classe.

Auteur: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub

Article connexe - Scala String