¿Cómo tomo una cadena y la convierto a minúsculas o mayúsculas en Ruby?
¿Cómo tomo una cadena y la convierto a minúsculas o mayúsculas en Ruby?
Respuestas:
Ruby tiene algunos métodos para cambiar el caso de las cadenas. Para convertir a minúsculas, use downcase
:
"hello James!".downcase #=> "hello james!"
Del mismo modo, upcase
escribe en mayúscula cada letra y capitalize
escribe en mayúscula la primera letra de la cadena, pero en minúscula el resto:
"hello James!".upcase #=> "HELLO JAMES!"
"hello James!".capitalize #=> "Hello james!"
"hello James!".titleize #=> "Hello James!"
Si desea modificar una cadena en su lugar, puede agregar un signo de exclamación a cualquiera de esos métodos:
string = "hello James!"
string.downcase!
string #=> "hello james!"
Consulte la documentación de String para obtener más información.
nil
; debe usarlos si desea cambiar un objeto en su lugar, no si desea almacenar el valor en otra variable.
.titleize
Es de Rails. No puedo encontrarlo en la String
documentación de ruby
titleize
debe eliminarse de esta respuesta o al menos indicar que es un método Rails.
Puede encontrar todos los métodos disponibles en una Cadena abriendo irb y ejecutando:
"MyString".methods.sort
Y para obtener una lista de los métodos disponibles para cadenas en particular:
"MyString".own_methods.sort
Utilizo esto para descubrir cosas nuevas e interesantes sobre objetos que de otro modo no habría sabido que existían.
String.public_instance_methods(false)
para buscar todos los métodos de instancia pública definidos específicamente por String
.
Como mencionó @endeR, si la internacionalización es una preocupación, la gema unicode_utils es más que adecuada.
$ gem install unicode_utils
$ irb
> require 'unicode_utils'
=> true
> UnicodeUtils.downcase("FEN BİLİMLERİ", :tr)
=> "fen bilimleri"
Las manipulaciones de cadenas en Ruby 2.4 ahora son unicode-sensibles.
El downcase
método ruby devuelve una cadena con letras mayúsculas reemplazadas por letras minúsculas.
"string".downcase
https://ruby-doc.org/core-2.1.0/String.html#method-i-downcase
El activo joya carriles de soporte proporciona upcase
, downcase
, swapcase
, capitalize
, etc métodos con soporte de internacionalización:
gem install activesupport
irb -ractive_support/core_ext/string
"STRING ÁÂÃÀÇÉÊÍÓÔÕÚ".mb_chars.downcase.to_s
=> "string áâãàçéêíóôõú"
"string áâãàçéêíóôõú".mb_chars.upcase.to_s
=> "STRING ÁÂÃÀÇÉÊÍÓÔÕÚ"
Puede encontrar el método cuerdas como "strings".methods
se puede definir cadena como upcase
, downcase
, titleize
. Por ejemplo,
"hii".downcase
"hii".titleize
"hii".upcase
El método .swapcase transforma las letras mayúsculas en una cadena en minúsculas y las letras minúsculas en mayúsculas.
'TESTING'.swapcase #=> testing
'testing'.swapcase #=> TESTING
'Testing'.swapcase #=> tESTING
Desde Ruby 2.4 hay un mapeo de casos Unicode completo . Fuente: https://stackoverflow.com/a/38016153/888294 . Consulte la documentación de Ruby 2.4.0 para más detalles: https://ruby-doc.org/core-2.4.0/String.html#method-i-downcase
No funcionará para todos, pero esto me ahorró mucho tiempo. Acabo de tener el problema con un CSV que devuelve "VERDADERO o" FALSO ", así que simplemente agregué VALOR.to_s.downcase ==" verdadero "que devolverá el valor booleano verdadero si el valor es" VERDADERO "y falso si el valor es" FALSO ", pero seguirá funcionando para el booleano verdadero y falso.