Case Mapping

Einige zeichenkettenorientierte Methoden verwenden Case Mapping.

In String

In Symbol

Standard-Case-Mapping

Standardmäßig verwenden alle diese Methoden die vollständige Unicode-Case-Mapping, die für die meisten Sprachen geeignet ist. Siehe Abschnitt 3.13 (Default Case Algorithms) des Unicode-Standards.

Nicht-ASCII-Case-Mapping und -Faltung werden für UTF-8, UTF-16BE/LE, UTF-32BE/LE und ISO-8859-1~16 Strings/Symbole unterstützt.

Kontextabhängiges Case-Mapping, wie in Tabelle 3-17 (Context Specification for Casing) des Unicode-Standards beschrieben, wird derzeit nicht unterstützt.

In den meisten Fällen hat die Umwandlung der Groß-/Kleinschreibung eines Strings die gleiche Anzahl von Zeichen wie zuvor. Es gibt Ausnahmen (siehe auch :fold unten)

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

Case-Mapping kann auch vom Locale abhängen (siehe auch :turkic unten)

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

Groß-/Kleinschreibungsänderungen sind möglicherweise nicht umkehrbar

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

Methoden zur Änderung der Groß-/Kleinschreibung erhalten möglicherweise keine Unicode-Normalisierung. Siehe String#unicode_normalize.

Case Mappings

Mit Ausnahme von casecmp und casecmp? akzeptiert jede der oben aufgeführten Case-Mapping-Methoden ein optionales Argument, mapping.

Das Argument ist einer von