Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Stringクラス > capitalize!

instance method String#capitalize!

capitalize! -> self | nil[permalink][rdoc]

文字列先頭の文字を大文字に、残りを小文字に変更します。 ただし、アルファベット以外の文字は位置に関わらず変更しません。

[RETURN]
capitalize! は self を変更して返しますが、 変更が起こらなかった場合は nil を返します。

例:

str = "foobar"
str.capitalize!
p str   # => "Foobar"

str = "fooBAR"
str.capitalize!
p str   # => "Foobar"

$KCODE が適切に設定されていない場合は、 マルチバイト文字の一部をあやまって変換してしまう場合があります。 この問題は以下のように Shift JIS エンコーディングを使う場合に発生します。

$KCODE = 'NONE'
# 文字列は Shift JIS エンコーディングで記述されている
str = "帰"
str.capitalize!
puts str   # => 蟻

また、$KCODE を設定しても、 マルチバイト文字のいわゆる全角アルファベットは処理しません。

[SEE_ALSO] String#capitalize, String#upcase!, String#downcase!, String#swapcase!