Ich möchte apple
und Apple
Vergleich sein true
. Zur Zeit
"Apple" == "Apple" # returns TRUE
"Apple" == "APPLE" # returns FALSE
ruby
string
string-comparison
Steven
quelle
quelle
casecmp
: Ein dummer Name für eine Vergleichsmethode, bei der die Groß- und Kleinschreibung nicht berücksichtigt wird?!== 0
durchzero?
"Apple".casecmp("APPLE").zero?
aber ich persönlich mag Andres Antwort unten, die verwendet.casecmp?
In Ruby 2.4.0 haben Sie:
casecmp?(other_str) → true, false, or nil
Hier haben Sie weitere Informationen
quelle
casecmp
Müll verwenden."aBcDeF".downcase == "abcdef"
stattdessen verwenden.casecmp
In Ruby 2.4+ sind viel besser lesbar und die Leistungssteigerungen bei der Verwendung entfallen.false
undnil
für eine API wie diese ...Falls Sie UTF-8-Zeichenfolgen vergleichen müssen, ohne die Groß- und Kleinschreibung zu beachten:
Dies funktioniert in Ruby 2.3.1 und früheren Versionen auf diese Weise.
Für einen geringeren Speicherbedarf können Sie Folgendes auswählen
string/multibyte
:Bearbeiten , Ruby 2.4.0:
Funktioniert
casecmp
also nicht in 2.4.0; In 2.4.0 kann man UTF-8-Strings jedoch manuell ohneactive_support
Gem vergleichen:quelle
casecmp und null? sind rubinrote Methoden. casecmp gibt 0 zurück, wenn zwei Zeichenfolgen gleich sind, ohne Berücksichtigung der Groß- und Kleinschreibung und Null? prüft auf Nullwert (== 0)
quelle
0
, besonders wenn es mit einer komplexeren Bedingung verschachtelt ist.Für Ruby 2.4 funktioniert feines Casecmp? für utf-8-Strings (mb_chars nicht erforderlich):
aber casecmp funktioniert nicht für utf-8:
quelle