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

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

instance method String#swapcase

swapcase -> String[permalink][rdoc]

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

このメソッドはマルチバイト文字列を認識しますが、それはあくまでも「1 文字を 1 文字として認識する」だけであって、いわゆる全角アルファベットの大文字小文字までは変換しません。

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

例:

p "ABCxyz".swapcase   # => "abcXYZ"
p "Access".swapcase   # => "aCCESS"

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

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