Pregunta Cómo convertir una cadena a mayúscula o minúscula en Ruby


¿Cómo tomo una cadena y la convierto en mayúscula o minúscula en Ruby?


970
2018-06-20 00:16


origen


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!"

Similar, upcase capitaliza cada letra y capitalize escribe en mayúscula la primera letra de la cadena pero 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 admiración a cualquiera de esos métodos:

string = "hello James!"
string.downcase!
string   #=> "hello james!"

Referirse a documentación para String para más información.


1408
2018-06-20 00:16



Puede descubrir todos los métodos disponibles en una cadena abriendo irb y ejecutando:

"MyString".methods.sort

Y para 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.


114
2018-06-20 09:27



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-sensitive.


36
2018-04-19 05:46



El rubí downcase método devuelve una cadena con sus letras mayúsculas reemplazadas por letras minúsculas.

"string".downcase

https://ruby-doc.org/core-2.1.0/String.html#method-i-downcase


14
2018-06-20 00:16



... y la mayúscula es:

"Awesome String".upcase
=> "AWESOME STRING"

11
2018-06-20 09:10



La gema de soporte activo de Rails 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  ÁÂÃÀÇÉÊÍÓÔÕÚ"

11
2017-08-01 23:44



Desde Ruby 2.4 hay un built-in mapeo completo de casos Unicode. 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


0
2017-09-18 14:57