Quiero apple
y Apple
comparación para ser true
. Actualmente
"Apple" == "Apple" # returns TRUE
"Apple" == "APPLE" # returns FALSE
ruby
string
string-comparison
Steven
fuente
fuente
casecmp
: ¿un nombre tonto para un método de comparación caso- en- sensible?== 0
conzero?
"Apple".casecmp("APPLE").zero?
Pero personalmente me gusta que Andrés responda a continuación, que usa.casecmp?
En Ruby 2.4.0 tienes:
casecmp?(other_str) → true, false, or nil
Aquí tienes más información
fuente
casecmp
basura."aBcDeF".downcase == "abcdef"
en su lugar. Mucho más legible y las ganancias de rendimiento del usocasecmp
se eliminan en Ruby 2.4+.false
ynil
para una API como esta ...En caso de que tenga que comparar cadenas UTF-8 ignorando mayúsculas y minúsculas:
Funciona de esta manera en Ruby 2.3.1 y versiones anteriores.
Para una huella de memoria más pequeña, puede elegir
string/multibyte
:Editar , Ruby 2.4.0:
Entonces
casecmp
no funciona en 2.4.0; Sin embargo, en 2.4.0 se pueden comparar cadenas UTF-8 manualmente sinactive_support
gemas:fuente
casecmp y cero? son métodos incorporados de rubí. casecmp devuelve 0 si dos cadenas son iguales, sin distinción entre mayúsculas y minúsculas? comprueba el valor cero (== 0)
fuente
0
, especialmente cuando está anidado con una condición más complicada.¿Para ruby 2.4 funciona bien casecmp? para cadenas utf-8 (no se necesitan mb_chars):
pero casecmp no funciona para utf-8:
fuente