Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library _builtin > class String > swapcase!

instance method String#swapcase!

swapcase! -> self | nil

'A' から 'Z' までのアルファベット大文字を小文字に、 'a' から 'z' までのアルファベット小文字を大文字に、破壊的に変更します。

swapcase! は self を変更して返しますが、 置換が起こらなかった場合は nil を返します。

このメソッドはマルチバイト文字を認識しません。 そのため、文字列が Shift JIS エンコーディングで、 かつ $KCODE が適切に設定されていない場合、 マルチバイト文字の一部も変換してしまう場合があります。 逆に、$KCODE を設定しても マルチバイト文字のアルファベットは処理しません。

例:

str = "ABCxyz"
str.swapcase!
p str   # => "abcXYZ"

# -*- Coding: shift_jis -*-
$KCODE ='n'
puts "蟻".swapcase   # => 帰

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