Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library _builtin > class 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