Ruby sammenligne streng

Ruby sammenligne streng
Strengsammenligning er prosessen med å evaluere to strenglitteraler ved bruk av betingede uttrykk som returnerer en boolsk sann eller falsk.

I Ruby kan vi utføre strengsammenligningsoperasjoner ved hjelp av forskjellige metoder, som diskutert i denne opplæringen.

Likestillingoperatør

To like skilt betegner likestillingoperatøren i Ruby. Det returnerer sant hvis begge objektene er like og usanne hvis annet.

var1 = “Hei”
var2 = “Hei”
var1 == var2
=> sant

Likestillingsoperatøren bryr seg ikke så lenge begge forutsatte objekter er gyldige strenger

var1 = 'hei'
var2 = "Hei"
var2 == var1
=> sant

Hvis strengene ikke er like, vil likestillingsoperatøren komme tilbake usant.

var1 = "Hei"
var2 = "verden"
var1 == var2
=> falsk

Du kan gjøre mer enn å sammenligne strengvariabler. Du kan også sammenligne en streng bokstavelig som:

"hei" == "null"
=> falsk

Det er bra å merke seg at en numerisk streng ikke er direkte sammenlignbar med en heltallverdi.

2 == "2"
=> falsk

Ikke lik

Den ikke like operatøren, betegnet som !=, returnerer sant hvis de sammenlignede verdiene ikke er like og usanne hvis de er like. Det fungerer som en negasjon av likestillingoperatøren.

"Hallo" != "Hei"
=> falsk

Hvis de sammenlignede verdiene ikke er like, returnerer den sant som:

"Hallo" != "Hei"
=> sant

Eql? Metode

Ruby har en innebygd strengmetode som heter EQL?. Eql? Metode sjekker om verdiene er like i både lengde og innhold. Eql? metoden returnerer sant hvis de sammenlignede verdiene er like eller ikke.

Eksempler:

var1 = “Hei”
var1.Eql?("HALLO")
=> sant

I dette tilfellet er begge strengene like i lengde og innhold.

Eql? Metoden er case-sensitiv og vil returnere falsk hvis foringsrøret ikke er lik

var1 = “Hei”
var1.Eql?("Hallo")
=> falsk

I motsetning til likestillingsoperatøren som returnerer sant når du sammenligner et heltall og float, er EQL? metoden returnerer falsk som:

10 == 10.0
=> sant
10.Eql?10.0
=> falsk

Lik? Metode

I motsetning til likestillingsoperatøren som sjekker om begge verdiene er like, er de likeverdige? Metode sjekker om begge operandene refererer til det samme objektet.

var1 = "Hei"
var2 = "Hei"
var1.lik? var2
=> falsk

Du vil merke at metoden returnerer falsk ettersom verdiene ikke refererer til det samme objektet. Du kan få dette ved å bruke Object_id som:

var1.objekt_id
=> 280
var2.objekt_id
=> 300

Et eksempel på at begge operandene som peker på det samme objektet er som vist:

var2 = var1
var1.lik? var2
=> sant
var1.objekt_id
=> 280
var2.objekt_id
=> 280

Romskip notasjon

Ruby gir også en måte å sammenligne strenger kjent som Notation. Vi uttrykker dette med et mindre enn tegn, et like tegn og en større enn en operatør.

Metoden returnerer 0 hvis strengene stemmer overens.

"Hei hei"
=> 0
"Hei hei"
=> -1
"Hei hei"
=> 1

Casecmp -metode

For å utføre en ufølsom sammenligning, kan du bruke CASECMP -metoden. Den har lignende returverdier til romskipnotasjon.

"Hallo".casecmp "Hei"
=> 0

Metoden ignorerer saksfølsomhet og sammenligner bare innholdet i strengene.

7: Sammenligning av rekkevidde

For å sammenligne om et tegn er innenfor et bestemt område, kan vi bruke Operatøren, donert ved hjelp av Triple Equal Signs ===

("A" ... "G") === "D"
=> sant
("A" ... "G") === "Z"
=> falsk

Operatøren returnerer sant hvis tegnet er i området og falsk hvis annet.

Konklusjon

I denne guiden diskuterte vi forskjellige måter å sammenligne strenger på rubinspråket.

Takk for at du leser!