Comparer les chaînes dans Scala
-
Comparer des chaînes à l’aide de la méthode
equals()
dans Scala -
Comparer des chaînes à l’aide de l’opérateur
==
dans Scala - Égalité en Java et 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 classeString
(comme la chaîneone
dans le code ci-dessus) ne doit pas êtrenull
; sinon, nous aurons uneNullPointerException
.
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.