Ruby Porównaj ciąg

Ruby Porównaj ciąg
Porównanie ciągów to proces oceny dwóch literałów łańcuchowych przy użyciu wyrażeń warunkowych zwracających boolean true lub fałsz.

W Ruby możemy wykonywać operacje porównawcze ciągów przy użyciu różnych metod, jak omówiono w tym samouczku.

Operator równości

Dwa równe znaki oznaczają operatora równości w Ruby. Zwraca prawdę, jeśli oba obiekty są równe i fałszywe, jeśli inaczej.

var1 = „Hello”
var2 = „Hello”
var1 == var2
=> True

Operator równości nie dba o tak długo, jak oba dostarczone obiekty są prawidłowymi strunami

var1 = „Hello”
var2 = "Hello"
var2 == var1
=> True

Jeśli ciągi nie są równe, operator równości zwróci false.

var1 = "Hello"
var2 = „świat”
var1 == var2
=> Fałsz

Możesz zrobić więcej niż porównać zmienne ciągów. Możesz także porównać dosłowne string jako:

„Hello” == "zero"
=> Fałsz

Warto zauważyć, że ciąg numeryczny nie jest bezpośrednio porównywalny z wartością całkowitą.

2 == "2"
=> Fałsz

Nie równe

Nie równy operator, oznaczony jako !=, zwraca true, jeśli wartości porównywane nie są równe i fałszywe, jeśli są równe. Działa jako negacja operatora równości.

"Witam" != "Hello"
=> Fałsz

Jeśli porównywane wartości nie są równe, zwraca prawdziwie jako:

"Witam" != "Hello"
=> True

Eql? metoda

Ruby ma wbudowaną metodę łańcuchową o nazwie EQL?. EQL? Metoda sprawdza, czy wartości są równe zarówno pod względem długości, jak i zawartości. EQL? Metoda zwraca true, jeśli porównywane wartości są równe, czy nie.

Przykłady:

var1 = „Hello”
var1.eql?("CZEŚĆ")
=> True

W takim przypadku oba ciągi mają równą długość i zawartość.

EQL? Metoda jest wrażliwa na literę i zwróci fałsz, jeśli obudowa nie jest równa

var1 = „Hello”
var1.eql?("Witam")
=> Fałsz

W przeciwieństwie do operatora równości, który zwraca true, gdy porównujesz liczbę całkowitą i pływasz, eql? Metoda zwraca false jako:

10 == 10.0
=> True
10.eql?10.0
=> Fałsz

Równy? metoda

W przeciwieństwie do operatora równości, który sprawdza, czy obie wartości są równe, równe? Metoda sprawdza, czy oba operandy odnoszą się do tego samego obiektu.

var1 = "Hello"
var2 = "Hello"
var1.równy? var2
=> Fałsz

Zauważysz, że metoda zwraca false, ponieważ wartości nie odwołują się do tego samego obiektu. Możesz to uzyskać za pomocą Object_ID jako:

var1.Object_id
=> 280
var2.Object_id
=> 300

Przykładem obu operandów wskazujących na ten sam obiekt jest, jak pokazano:

var2 = var1
var1.równy? var2
=> True
var1.Object_id
=> 280
var2.Object_id
=> 280

Notacja statku kosmicznego

Ruby zapewnia również sposób porównywania ciągów znanych jako notacja statka kosmiczna. Wyrażamy to z mniej niż znakiem, znakiem równym i większym niż operator.

Metoda zwraca 0, jeśli ciągi pasują -1, jeśli lewy operand jest mniejszy niż prawy operand, a 1, jeśli prawy operand jest większy niż lewy operand.

"cześć cześć"
=> 0
"Cześć cześć"
=> -1
"cześć cześć"
=> 1

Metoda CaseCMP

Aby przeprowadzić porównanie nieczułe przypadki, możesz użyć metody CaseCMP. Ma podobne wartości zwrotne do notacji statku kosmicznego.

"Cześć".Casecmp „Hello”
=> 0

Metoda ignoruje wrażliwość na przypadki i porównuje tylko zawartość strun.

7: Porównanie zakresu

Aby porównać, czy znak znajduje się w określonym zakresie, możemy użyć operatora zasięgu, przekazanego przy użyciu potrójnych równych znaków ===

(„A”… „G”) === „D”
=> True
(„A”… „G”) === „Z”
=> Fałsz

Operator zwraca true, jeśli znak znajduje się w zakresie i fałsz, jeśli inaczej.

Wniosek

W tym przewodniku omówiliśmy różne sposoby porównywania ciągów w języku Ruby.

Dziękuję za przeczytanie!