Skip to content
instance method

String#swapcase

() -> ::String
(:ascii | :lithuanian | :turkic) -> ::String
(:lithuanian, :turkic) -> ::String
(:turkic, :lithuanian) -> ::String
swapcase(mapping = :ascii) → new_string

Returns a string containing the characters in self, with cases reversed:

  • Each uppercase character is downcased.

  • Each lowercase character is upcased.

Examples:

Example
'Hello'.swapcase        # => "hELLO"
'Straße'.swapcase       # => "sTRASSE"
'Привет'.swapcase       # => "пРИВЕТ"
'RubyGems.org'.swapcase # => "rUBYgEMS.ORG"

The sizes of self and the upcased result may differ:

Example
s = 'Straße'
s.size          # => 6
s.swapcase      # => "sTRASSE"
s.swapcase.size # => 7

Some characters (and some character sets) do not have upcase and downcase versions; see Case Mapping:

Example
s = '1, 2, 3, ...'
s.swapcase == s # => true
s = 'こんにちは'
s.swapcase == s # => true

The casing is affected by the given mapping, which may be :ascii, :fold, or :turkic; see Case Mappings.

Related: see Converting to New String.

Ruby version changes

  1. 3.0
See also #swapcase! #sum #succ! #to_c also in 4.1 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0