web-dev-qa-db-ja.com

Rubyで文字列を小文字または大文字に変換する方法

Rubyで文字列を受け取り、それを小文字または大文字に変換するにはどうすればよいですか?

1045
Heat Miser

Rubyには文字列の大文字小文字を変えるためのいくつかの方法があります。小文字に変換するには、downcaseを使用します。

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

同様に、upcaseはすべての文字を大文字にし、capitalizeは文字列の最初の文字を大文字にしますが、残りは小文字にします。

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

文字列をその場で修正したい場合は、感嘆符をこれらのメソッドのいずれかに追加することができます。

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

詳しくは のドキュメント を参照してください。

1504
Sophie Alpert

Irbを開いて実行することで、Stringで利用可能なすべてのメソッドを見つけることができます。

"MyString".methods.sort

そして、特に文字列で利用可能なメソッドのリストのために:

"MyString".own_methods.sort

私はこれを使用して、他には存在していなかったかもしれないオブジェクトについての新しくて興味深いものを見つけます。

117
mlambie

@endeRが述べたように、国際化が懸念される場合は、unicode_utils gemが十分すぎるほどです。

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

Ruby 2.4の文字列操作は、Unicodeに依存しなくなりました。

38
nurettin

Rubyのdowncaseメソッドは、大文字を小文字に置き換えて文字列を返します。

"string".downcase

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

16
Heat Miser

...そして大文字は:

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

Rails Active Support gemは、国際化対応のupcasedowncaseswapcasecapitalizeなどのメソッドを提供します。

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

Ruby言語は、文字列のケースに関連する操作のためのさまざまな組み込みメソッドを提供します。

例えば.

string = "Ruby on Rails"

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

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

しかし、これは元の変数を変更しません。

puts string
=> "Ruby on Rails"

元の変数も変更する場合は、次を使用します。

文字列= "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

。swapcaseメソッドは、ストリング内の大文字を小文字に変換し、小文字を大文字に変換します。

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

あなたは"strings".methodsのような文字列メソッドを見つけることができますあなたはupcasedowncasetitleizeとして文字列を定義することができます。例えば、

"hii".downcase
"hii".titleize
"hii".upcase
0
Foram Thakral
0
mmichaa