Ruby Compare String

Ruby Compare String
La comparaison des chaînes est le processus d'évaluation de deux littéraux de chaînes en utilisant des expressions conditionnelles renvoyant un booléen vrai ou faux.

Dans Ruby, nous pouvons effectuer des opérations de comparaison de chaînes en utilisant diverses méthodes, comme discuté dans ce tutoriel.

Opérateur d'égalité

Deux signes égaux indiquent l'opérateur d'égalité dans Ruby. Il renvoie vrai si les deux objets sont égaux et faux si autrement.

var1 = "bonjour"
var2 = "bonjour"
var1 == var2
=> vrai

L'opérateur d'égalité ne se soucie pas tant que les deux objets fournis sont des chaînes valides

var1 = 'bonjour'
var2 = "bonjour"
var2 == var1
=> vrai

Si les cordes ne sont pas égales, l'opérateur d'égalité reviendra faux.

var1 = "bonjour"
var2 = "monde"
var1 == var2
=> Faux

Vous pouvez faire plus que comparer les variables de chaîne. Vous pouvez également comparer un littéral de cordes comme:

"bonjour" == "zéro"
=> Faux

Il est bon de noter qu'une chaîne numérique n'est pas directement comparable à une valeur entière.

2 == "2"
=> Faux

Inégal

L'opérateur non égal, désigné comme !=, renvoie vrai si les valeurs comparées ne sont pas égales et fausses si elles sont égales. Il agit comme une négation de l'opérateur d'égalité.

"Bonjour" != "Bonjour"
=> Faux

Si les valeurs comparées ne sont pas égales, elle renvoie vrai comme:

"Bonjour" != "Bonjour"
=> vrai

EQL? Méthode

Ruby a une méthode de chaîne intégrée appelée EQL?. L'EQL? La méthode vérifie si les valeurs sont égales en longueur et en contenu. L'EQL? la méthode renvoie vrai si les valeurs comparées sont égales ou non.

Exemples:

var1 = "bonjour"
var1.EQL?("BONJOUR")
=> vrai

Dans ce cas, les deux chaînes sont égales en longueur et en contenu.

L'EQL? La méthode est sensible à la casse et reviendra faux si le boîtier n'est pas égal

var1 = "bonjour"
var1.EQL?("Bonjour")
=> Faux

Contrairement à l'opérateur d'égalité qui renvoie True lorsque vous comparez un entier et un flotteur, l'EQL? la méthode renvoie false comme:

10 == 10.0
=> vrai
dix.EQL?dix.0
=> Faux

Égal? Méthode

Contrairement à l'opérateur d'égalité qui vérifie si les deux valeurs sont égales, l'égalité? La méthode vérifie si les deux opérandes font référence au même objet.

var1 = "bonjour"
var2 = "bonjour"
var1.égal? var2
=> Faux

Vous remarquerez que la méthode renvoie faux car les valeurs ne font pas référence au même objet. Vous pouvez l'obtenir en utilisant object_id comme:

var1.object_id
=> 280
var2.object_id
=> 300

Un exemple des deux opérandes pointant vers le même objet est comme indiqué:

var2 = var1
var1.égal? var2
=> vrai
var1.object_id
=> 280
var2.object_id
=> 280

Notation du vaisseau spatial

Ruby fournit également un moyen de comparer les chaînes appelées notation de vaisseau spatial. Nous exprimons cela avec un signe moins que, un signe égal et un plus grand qu'un opérateur.

La méthode renvoie 0 si les chaînes correspondent à -1 si l'opérande gauche est inférieure à l'opérande droit, et 1 si l'opérande droit est supérieur à l'opérande gauche.

"Bonjour bonjour"
=> 0
"Bonjour bonjour"
=> -1
"Bonjour bonjour"
=> 1

Méthode CASECMP

Pour effectuer une comparaison insensible au cas, vous pouvez utiliser la méthode CASECMP. Il a des valeurs de retour similaires à la notation du vaisseau spatial.

"Bonjour".casecmp "bonjour"
=> 0

La méthode ignore la sensibilité case et ne compare que le contenu des cordes.

7: Comparaison des plages

Pour comparer si un caractère se trouve dans une plage spécifique, nous pouvons utiliser l'opérateur de plage, donné en utilisant des signes triples égaux ===

("A"… "G") === "D"
=> vrai
("A"… "G") === "Z"
=> Faux

L'opérateur revient vrai si le personnage est dans la plage et faux si autrement.

Conclusion

Dans ce guide, nous avons discuté de diverses façons de comparer les chaînes dans la langue Ruby.

Merci pour la lecture!