length
oder size, die für Strings identisch sind.
s="" s.length #-> 0 "Ruby".size #-> 4
Durch den Operator [] kann man auf Teile eines Strings
zugreifen.
Die Zählung der Offsets beginnt bei positiven Indizes von vorne, bei
negativen von hinten, wobei
den letzten Buchstaben im String
bezeichnet.
"ABC"[0] #-> 65 "ABC"[2] #-> 67 "ABC"[-1] #-> 67
![]()
s[0]
bezieht sich auf den ersten Buchstaben
und nicht das erste Byte in der Zeichenkette. Das wird dann wichtig,
wenn man mit Multibyte-Kodierungen (UTF-8, SJIS, ...)
arbeitet.
Wird in den eckigen Klammern
ein Bereich festgelegt, können dabei positive
und negative Indizes beliebig gemischt werden. Sollte
allerdings das Ende vor dem Anfang zu liegen kommen, wird
nil zurückgegeben.
"abcde"[1..3] #-> "bcd" "abcde"[1..-2] #-> "bcd" "abcde"[-4..-2] #-> "bcd" "abcde"[-4..3] #-> "bcd" "abcde"[4..-3] #-> nil
Dabei ist die Indizierung 1..3 keine spezielle Syntax, es wird in
der Tat eine Range (Wertebereich)-Instanz
(siehe Kapitel 8 auf Seite
) verwendet,
so dass noch eine andere Varianten auftreten kann.
"abcde"[1..3] #-> "bcd" "abcde"[1...3] #-> "bc"
Schließlich gibt es noch die Möglichkeit, Anfang und Größe des gewünschten Teilstrings festzulegen:
"abcde"[1,3] #-> "bcd" "abcde"[3,3] #-> "de"
s[0]