大小寫轉換

一些字串導向的方法使用大小寫轉換。

在 String 中

在 Symbol 中

預設大小寫轉換

預設情況下,所有這些方法都使用完整的 Unicode 大小寫轉換,這適用於大多數語言。請參閱 Unicode 標準的第 3.13 節(預設大小寫演算法)

UTF-8、UTF-16BE/LE、UTF-32BE/LE 和 ISO-8859-1~16 字串/符號支援非 ASCII 字元大小寫轉換和折疊。

目前不支援 Unicode 標準中 表 3-17(大小寫轉換的內容規格) 所述的內容相關大小寫轉換。

在大部分情況下,字串的大小寫轉換會產生相同數量的字元。但有例外情況(另請參閱下方的 :fold

s = "\u00DF" # => "ß"
s.upcase     # => "SS"
s = "\u0149" # => "ʼn"
s.upcase     # => "ʼN"

大小寫轉換也可能取決於地區設定(另請參閱下方的 :turkic

s = "\u0049"        # => "I"
s.downcase          # => "i" # Dot above.
s.downcase(:turkic) # => "ı" # No dot above.

大小寫轉換可能無法還原

s = 'Hello World!' # => "Hello World!"
s.downcase         # => "hello world!"
s.downcase.upcase  # => "HELLO WORLD!" # Different from original s.

大小寫轉換方法可能無法維持 Unicode 正規化。請參閱 String#unicode_normalize)。

大小寫轉換選項

除了 casecmpcasecmp? 之外,上面列出的每個大小寫轉換方法都接受選用引數 *options

引數可能是

選項