Ruby vergleiche Zeichenfolge

Ruby vergleiche Zeichenfolge
String -Vergleich ist der Prozess der Bewertung von zwei String -Literalen unter Verwendung von bedingten Ausdrücken, die einen booleschen wahr oder falschen zurückgeben.

In Ruby können wir anhand verschiedener Methoden String -Vergleichsvorgänge durchführen, wie in diesem Tutorial erläutert.

Gleichstellungsoperator

Zwei gleiche Zeichen bezeichnen den Gleichstellungsoperator in Ruby. Es gibt wahr zurück, wenn beide Objekte gleich und falsch sind, wenn anders.

var1 = "Hallo"
var2 = "Hallo"
var1 == var2
=> wahr

Der Gleichstellungsbetreiber kümmert sich nicht darum, solange beide angegebenen Objekte gültige Zeichenfolgen sind

var1 = 'Hallo'
var2 = "Hallo"
var2 == var1
=> wahr

Wenn die Zeichenfolgen nicht gleich sind, gibt der Gleichstellungsoperator false zurück.

var1 = "Hallo"
var2 = "Welt"
var1 == var2
=> falsch

Sie können mehr tun als String -Variablen zu vergleichen. Sie können auch einen String -Literal vergleichen wie:

"Hallo" == "Zero"
=> falsch

Es ist gut zu beachten, dass eine numerische Zeichenfolge nicht direkt mit einem Ganzzahlwert vergleichbar ist.

2 == "2"
=> falsch

Nicht gleich

Der nicht gleiche Operator, bezeichnet als als !=, gibt true zurück, wenn die verglichenen Werte nicht gleich und falsch sind, wenn sie gleich sind. Es fungiert als Negation des Gleichstellungsoperators.

"Hallo" != "Hallo"
=> falsch

Wenn die verglichenen Werte nicht gleich sind, gibt sie wahr wie:

"Hallo" != "Hallo"
=> wahr

EQL? Methode

Ruby hat eine integrierte String-Methode namens EQL?. Die EQL? Methodenprüfungen, wenn die Werte sowohl in Länge als auch in Inhalt gleich sind. Die EQL? Die Methode gibt true zurück, wenn die verglichenen Werte gleich sind oder nicht.

Beispiele:

var1 = "Hallo"
var1.EQL?("HALLO")
=> wahr

In diesem Fall sind beide Saiten in Länge und Inhalt gleich.

Die EQL? Die Methode ist Fallempfindlichkeit und kehrt falsch zurück, wenn das Gehäuse nicht gleich ist

var1 = "Hallo"
var1.EQL?("Hallo")
=> falsch

Im Gegensatz zu dem Gleichstellungsoperator, der true zurückgibt, wenn Sie eine Ganzzahl und Float, den EQL? Die Methode gibt falsch als:

10 == 10.0
=> wahr
10.EQL?10.0
=> falsch

Gleich? Methode

Im Gegensatz zu dem Gleichstellungsoperator, der überprüft, ob beide Werte gleich sind, sind die gleichen? Methode prüft, ob beide Operanden auf dasselbe Objekt verweisen.

var1 = "Hallo"
var2 = "Hallo"
var1.gleich? var2
=> falsch

Sie werden feststellen, dass die Methode false zurückgibt, da die Werte nicht auf das gleiche Objekt verweisen. Sie können dies mit Object_id als:

var1.Objekt Identifikation
=> 280
var2.Objekt Identifikation
=> 300

Ein Beispiel für beide Operanden, die auf dasselbe Objekt hinweisen, ist wie gezeigt:

var2 = var1
var1.gleich? var2
=> wahr
var1.Objekt Identifikation
=> 280
var2.Objekt Identifikation
=> 280

Raumschiff -Notation

Ruby bietet auch eine Möglichkeit, Strings zu vergleichen, die als Raumschiffnotation bekannt sind. Wir drücken dies mit einem weniger als Zeichen, einem gleichen Zeichen und einem größeren als einem Bediener aus.

Die Methode gibt 0 zurück, wenn die Zeichenfolgen -1 übereinstimmen, wenn der linke Operand geringer ist als der rechte Operand, und 1, wenn der rechte Operand größer ist als der linke Operand.

"Hallo Hallo"
=> 0
"Hallo Hallo"
=> -1
"Hallo Hallo"
=> 1

CASECMP -Methode

Um einen unempfindlichen Vergleich durch den Fall durchzuführen, können Sie die CASECMP -Methode verwenden. Es hat ähnliche Rückgabewerte, um Spaceship -Notation zu erhalten.

"Hallo".CASECMP "Hallo"
=> 0

Die Methode ignoriert die Fallempfindlichkeit und vergleicht nur den Inhalt der Zeichenfolgen.

7: Bereichsvergleich

Um zu vergleichen, ob sich ein Zeichen in einem bestimmten Bereich befindet, können wir den Bereichsbetreiber verwenden, der mit drei gleichen Zeichen === gespendet wird

("a" ... "g") === "D"
=> wahr
("a" ... "g") === "Z"
=> falsch

Der Bediener kehrt true zurück, wenn sich das Zeichen im Bereich befindet, und wenn anders falsch.

Abschluss

In diesem Handbuch diskutierten wir verschiedene Möglichkeiten, Strings in der Ruby -Sprache zu vergleichen.

Vielen Dank für das Lesen!