Como eu pego uma string e a converto para maiúscula ou minúscula no Ruby?
1110
Ruby tem alguns métodos para mudar o caso de strings. Para converter em minúsculas, use downcase
:
"hello James!".downcase #=> "hello james!"
Da mesma forma, upcase
coloca em maiúscula todas as letras e em capitalize
maiúscula a primeira letra da string, mas em minúsculas o restante:
"hello James!".upcase #=> "HELLO JAMES!"
"hello James!".capitalize #=> "Hello james!"
"hello James!".titleize #=> "Hello James!"
Se você deseja modificar uma sequência no lugar, você pode adicionar um ponto de exclamação a qualquer um desses métodos:
string = "hello James!"
string.downcase!
string #=> "hello james!"
Consulte a documentação para String para obter mais informações.
nil
; você deve usá-los se desejar alterar um objeto no lugar, não se desejar armazenar o valor em outra variável..titleize
é do Rails. Não pode encontrá-lo em rubyString
documentaçãotitleize
precisa ser removido desta resposta ou, pelo menos, declarar que é um método Rails.Você pode descobrir todos os métodos disponíveis em uma String abrindo irb e executando:
E para uma lista dos métodos disponíveis para seqüências de caracteres em particular:
Eu uso isso para descobrir coisas novas e interessantes sobre objetos que, de outra forma, eu nem sabia que existiam.
fonte
String.public_instance_methods(false)
para encontrar todos os métodos de instância pública definidos especificamente porString
.Como o @endeR mencionado, se a internacionalização for uma preocupação, a gema unicode_utils é mais do que adequada.
Manipulações de string no Ruby 2.4 agora são sensíveis a unicode.
fonte
O
downcase
método ruby retorna uma string com suas letras maiúsculas substituídas por letras minúsculas.https://ruby-doc.org/core-2.1.0/String.html#method-i-downcase
fonte
... e a maiúscula é:
fonte
O Rails gem Active Support fornece
upcase
,downcase
,swapcase
,capitalize
, etc. métodos com suporte a internacionalização:fonte
Você pode encontrar método de cordas como
"strings".methods
você pode definir string comoupcase
,downcase
,titleize
. Por exemplo,fonte
O método .swapcase transforma as letras maiúsculas em uma seqüência de caracteres em minúsculas e as letras minúsculas em maiúsculas.
fonte
'Testing'.swapcase #=> tESTING
Desde o Ruby 2.4, existe um mapeamento completo de casos Unicode . Fonte: https://stackoverflow.com/a/38016153/888294 . Consulte a documentação do Ruby 2.4.0 para obter detalhes: https://ruby-doc.org/core-2.4.0/String.html#method-i-downcase
fonte
Não vai funcionar para todos, mas isso me salvou um monte de tempo. Eu apenas tive o problema com um CSV retornando "TRUE ou" FALSE ", então acabei de adicionar VALUE.to_s.downcase ==" true ", que retornará o boolean true se o valor for" TRUE "e false se o valor for" FALSE ", mas ainda funcionará para o booleano true e false.
fonte