web-dev-qa-db-fra.com

Comment convertir une chaîne en minuscule ou en majuscule dans Ruby

Comment prendre une chaîne et la convertir en majuscule ou en minuscule dans Ruby?

1062
Heat Miser

Ruby a quelques méthodes pour changer la casse des chaînes. Pour convertir en minuscule, utilisez downcase:

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

De même, upcase met en majuscule chaque lettre et capitalize met en majuscule la première lettre de la chaîne, mais en minuscule le reste:

"hello James!".upcase      #=> "HELLO JAMES!"
"hello James!".capitalize  #=> "Hello james!"
"hello James!".titleize    #=> "Hello James!"

Si vous souhaitez modifier une chaîne à la place, vous pouvez ajouter un point d'exclamation à l'une de ces méthodes:

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

Reportez-vous à la documentation pour String pour plus d'informations.

1526
Sophie Alpert

Vous pouvez trouver toutes les méthodes disponibles sur une chaîne en ouvrant irb et en exécutant:

"MyString".methods.sort

Et pour une liste des méthodes disponibles pour les chaînes en particulier:

"MyString".own_methods.sort

J'utilise ceci pour découvrir des choses nouvelles et intéressantes sur des objets que je n'aurais peut-être pas connus autrement.

117
mlambie

Comme @endeR l'a mentionné, si l'internationalisation est une préoccupation, la gem unicode_utils est plus que suffisante.

$ gem install unicode_utils
$ irb
> require 'unicode_utils'
=> true
> UnicodeUtils.downcase("FEN BİLİMLERİ", :tr)
=> "fen bilimleri"

Les manipulations de chaîne dans Ruby 2.4 sont maintenant sensibles à l'unicode.

38
nurettin

La méthode Ruby downcase renvoie une chaîne dont les lettres majuscules sont remplacées par des lettres minuscules.

"string".downcase

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

17
Heat Miser

... et la majuscule est:

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

La gemme Rails Active Support fournit les méthodes upcase, downcase, swapcase, capitalize, etc., avec prise en charge de l'internationalisation:

gem install activesupport
irb -ractive_support/core_ext/string
"STRING  ÁÂÃÀÇÉÊÍÓÔÕÚ".mb_chars.downcase.to_s
 => "string  áâãàçéêíóôõú"
"string  áâãàçéêíóôõú".mb_chars.upcase.to_s
=> "STRING  ÁÂÃÀÇÉÊÍÓÔÕÚ"
11
helder.vasc

Le langage Ruby fournit différentes méthodes intégrées pour les opérations liées à la casse des chaînes.

par exemple.

string = "Ruby on Rails"

# For upper case 
puts string.upcase 
=> "Ruby on Rails"

# For lower case 
puts string.downcase
=> "Ruby on Rails"

Mais cela ne changera pas la variable d'origine.

puts string
=> "Ruby on Rails"

Si vous souhaitez également modifier la variable d'origine, utilisez les éléments suivants:

string = "Ruby on Rails"

# For upper case 
string.upcase!
puts string  
=> "Ruby on Rails"

# For lower case 
string.downcase!
puts string
=> "Ruby on Rails"
3
Amol Mohite

La méthode . Swapcase transforme les lettres majuscules d'une chaîne en minuscules et les lettres minuscules en majuscules.

'TESTING'.swapcase #=> testing
'testing'.swapcase #=> TESTING
1

Vous pouvez trouver une méthode de chaîne comme "strings".methods Vous pouvez définir une chaîne comme upcase, downcase, titleize. Par exemple,

"hii".downcase
"hii".titleize
"hii".upcase
1
Foram Thakral

Depuis Ruby 2.4, il existe un mappage de cas Unicode complet . Source: https://stackoverflow.com/a/38016153/888294 . Voir Ruby 2.4.0 documentation pour plus de détails: https://Ruby-doc.org/core-2.4.0/String.html#method-i-downcase

0
mmichaa