このマニュアルは既にメンテナンスが終了したバージョンの Ruby を対象としています。 最新版のマニュアルへ

Ruby 1.8.7 リファレンスマニュアル

instance method String#swapcase!

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

'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#swapcase, String#upcase!, String#downcase!, String#capitalize!