String-Operationen
Auswertung von String-Operationen
Auf dem Datentyp String können eine Reihe von Methoden aufgerufen werden, um beispielsweise zwei getrennte Zeichenketten zu verbinden oder eine Teilketten aus einer Zeichenkette zu extrahieren. Die dazu erforderlichen Ausdrücke werden nachfolgend erläutert:
- Ausdrücke zum Verbinden von Zeichenketten (String-Konkatenation)
- Ausdrücke zum Extrahieren von Teilketten
Ausdrücke zum Verbinden von Zeichenketten (String-Konkatenation)
Die Konkatenation ist eine Operation, die auf Zeichenketten (oder auf listenartigen Datenstrukturen) angewendet werden kann. Eine Zeichenkette besteht aus einer Folge von Zeichen in einer definierten Reihenfolge. Über eine String-Konkatenation können zwei Zeichenketten zu einer Zeichenkette verschmolzen werden, ohne die Reihenfolge der einzelnen Zeichen zu verändern. Der erste Teil der neu zusammengefügten Zeichenkette wird von der ersten Zeichenkette gebildet, der zweite Teil von der zweiten Zeichenkette.
Beispiel: Die beiden Zeichenketten „FIRST” und „spirit” können über den folgenden Ausdruck zur Zeichenkette „FIRSTspirit” zusammengefügt werden:
"FIRST" + "spirit"
oder analog über Variablen:
str1 + str2
Sofern gilt:
$CMS_SET(str1, "FIRST")$
$CMS_SET(str2, "spirit")$
Auf diese Weise ist es möglich, eine bestehende Variable vom Datentyp String mit einer neuen Zeichenkette zu verknüpfen:
$CMS_SET(myStr, str1 + str2)$
$CMS_VALUE(myStr)$
$CMS_SET(myStr, myStr + "_V4.0")$
$CMS_VALUE(myStr)$
Ausgabe:
FIRSTspirit
FIRSTspirit_V4.0
Ausdrücke zum Extrahieren von Teilketten
Es gibt unterschiedliche Ausdrücke, um einen Teilkette (Substring) aus einer Zeichenkette zu extrahieren. Die Zeichen einer Zeichenkette besitzen eine definierte Reihenfolge und können über einen Index bestimmt werden. Das bedeutet, durch Angabe von:
- Zeichenkette
- Startindex
- Endindex
kann eine Teilkette eindeutig definiert werden.
Der einfachste Weg ist das Extrahieren eines Zeichens aus einer Zeichenkette durch Angabe eines einzelnen Indexwerts, der gleichzeitig als Start- und Endindex (Startindex = Endindex), ausgewertet wird. Das heißt, der Ausdruck:
"Zeichenkette"[index]
liefert als Substring, genau das Zeichen der "Zeichenkette" zurück, das sich an der indizierten Stelle der Zeichenkette befindet. Also:
"Text"[0]
liefert den Substring:
"T"
Um eine Teilkette zu extrahieren, die aus mehr als einem Zeichen besteht, müssen zwei Indexwerte, getrennt durch '..' angegeben werden, wobei gilt: Endindex > Startindex:
"Zeichenkette"[startIndex..endIndex]
Beispiel: Die Zeichenkette 'myStr' mit dem Wert "FIRSTspirit" aus dem ersten Beispiel, soll wieder in zwei Teilstrings zerlegt werden:
myStr[0..4]
Das Codebeispiel extrahiert den Teilstring vom ersten Element (0) bis (..) zum fünften Element (4) der Zeichenkette. Die Auswertung ergibt folgendes Ergebnis:
"FIRST"
Der nächste Teil der Zeichenkette soll vom sechsten Element (5) bis (..) zum letzten Element der Zeichenkette extrahiert werden:
myStr[5..10]
Die Auswertung ergibt folgendes Ergebnis:
"spirit"
Ist die Länge der Zeichenkette nicht bekannt, kann analog folgender Ausdruck eingesetzt werden:
myStr[5..endIndex]
Wenn gilt:
$CMS_SET(endIndex, myStr.length - 1)
'myStr.length' ermittelt die Länge der Zeichenkette 'myStr' und liefert damit den letzten 'Indexwert + 1' der Zeichenkette zurück.