Str (String)
Der Typ "Str" steht für eine Zeichenkette (englisch "String"). Eine Zeichenkette ist eine Aneinanderreihung von einzelnen "Char (Character)"-Zeichen.
Dieser Typ ist relativ identisch mit einem Java-String.
Erzeugen
Ein String wird innerhalb von Anführungszeichen erzeugt:
"abcde123 %ABC_"
... und darf natürlich auch leer sein:
""
Sequenz
Einen String kann man ebenso als eine Folge von einzelnen Zeihen betrachten. Er ist zwar unveränderbar, aber einer Liste sehr ähnlich. Aus diesem Grund bietet ein String viele Listen-Funktionen.
s = "abcdef"
Print s.length
Print s.first
Print s.last
Print s.get( 3 )
Hier werden die Länge, das Erste, das Letzte und das Dritte Zeichen ausgegeben.
Aufteilen
Zum Teilen eines Strings existieren gleich mehrere Möglichkeiten.
Mit der Funktion "split" und einem Char, String oder regulären Ausdruck lässt sich der String bei den gewünschten Zeichen trennen.
Hier wird ein String bei den Leerzeichen getrennt:
s = "Abc Def Ghi"
Print s.split(' ')
Um einen String in 2 möglichst gleichgroße Teile zu teilen:
s = "Abc Def Ghi"
Print s.div( 2 )
Print s / 2
Eine weitere Funktion bietet die Möglichkeit, einen String in Gruppen mit einer festen länge aufzuteilen.
list = "abcdefghijklmnopqrst".group(3)
Print list
Mit ".group" wird der String in eine Liste mit einzelnen Strings aus je 3 Buchstaben umgewandelt. Der letzte Wert enthält ggf. weniger Buchstaben. Hier die Ausgabe:
[abc,def,ghi,jkl,mno,pqr,st]
Get, Pull
Mit "get" kann ein einzelnes Zeichen ausgelesen werden:
s = "abcdef"
Print s.get( 3 )
Print s[3]
Ebenso funktioniert die "lazy"-Variante "pull". Hier wird ggf. kein Fehler geworfen, sondern "nil" zurückgegeben:
s = "abcdef"
Print s.pull( 9 )
Print s[9]?
Das 9. Zeichen existiert nicht, weshalb "nil" zurückgegeben wird.
Set, Put
Auch kann ein String mit "set" und "put" wie eine Liste verändert werden.
Wichtig
Da ein String atomar ist, wird hierbei jeweils ein neuer String erzeugt!
Mit "set" lässt sich ein Zeichen austauschen.
s = "abcdef"
Print s.set( 'x', 3 )
Print s[3] = 'x'
"put" verlängert ggf. den String, damit das Zeichen an die entsprechende Stelle gesetzt werden kann:
s = "abcdef"
Print s.put( 'x', 9 )
Print s[9]? = 'x'
Sonderzeichen
Um Anführungszeichen innerhalb eines Strings zu verwenden, muss ein Escape-Backslash '\' voran gestellt werden:
"abc\"def\"ghi"
Ebenso können Sonderzeichen wie Zeilenumbruch ('\n') oder Tabulator ('\t') eingefügt werden:
"abc\ndef\tghi"
Ein Backslash wird wie folgt integriert:
"abc\\def"
In einen String können auch Unicode-Zeichen integriert werden. Hierzu wird ebenso der Backslash verwendet, gefolgt von einem kleinen 'u' und 4 hexadezimal-Zahlen (0-f).
Print "abc\u2202def"
Die Zeichenfolge "\u2202" wird somit ersetzt durch ein: ∂
Weitere Informationen: "Sonderzeichen"
Modifier
Bei der Definition eines Strings lässt sich noch ein "Modifier" anhängen.
Modifier | Beispiel | Erklärung |
---|---|---|
|
Normaler String, das '\n' wird in einen Zeilenumbruch umgewandelt | |
l |
|
Das 'l' steht für Literal. Hierbei wird das '\n' nicht umgewandelt und bleibt erhalten. |
r |
|
Dieser String ist eine "Regular Expression", weshalb ein RegEx-Objekt erstellt wird. |