indexOf()
Die Systemfunktion 'strLib.indexOf()' gibt einen Index an eine Zeichenfolge aus Zeichen zurück. Der Index gibt an, wo ein angegebenes Muster beginnt.
Syntax
strLib.indexOf(
Quelle STRING | UNICODE | CHAR | DBCHAR | MBCHAR inOut,
Muster STRING | UNICODE | CHAR | DBCHAR | MBCHAR in
[, zu_überspringende_Byte INT in] )
returns (Ergebnis INT)
- Quelle
- Bei der Eingabe kann es sich um einen beliebigen Wert handeln, der mit den angezeigten Typen zuordnungskompatibel ist.
- Muster
- Eine Zeichenfolge, nach der EGL in Quelle sucht. Der Wert muss denselben Typ haben wie Quelle.
- zu_überspringende_Byte
- Die Anzahl der ersten Zeichen in Quelle, die ignoriert werden sollen, bevor mit der Suche nach Muster begonnen wird. Ist dieser Wert nicht gültig (kleiner als 0 oder größer als die Länge von Quelle), löst die Funktion eine Ausnahmebedingung vom Typ 'IndexOutOfBounds' aus.
- Durch Übergabe der zu überspringenden Byte anstelle einer Anfangsposition können Sie eine Iteration ausführen, indem Sie das Ergebnis eines Aufrufs als Wert für zu_überspringende_Byte des nächsten Aufrufs verwenden, wie in Beispiel 2 weiter unten gezeigt wird.
- Ergebnis
- Der Index des Anfangs von Muster in Quelle. Wird Muster nicht gefunden, gibt die Funktion 0 zurück.
Beispiel 1
Das folgende Beispiel sucht die ersten beiden Vorkommen eines Semikolons in der Quellenzeichenfolge:
source STRING = "STRING; CHAR; DBCHAR; MBCHAR; or UNICODE.";
pattern STRING = "; "
result = strLib.indexOf(source, pattern);
// Das Ergebnis lautet 7
result = strLib.indexOf(source, pattern, 10);
// Das Ergebnis lautet 13
Beispiel 2
Das folgende Beispiel sucht alle Vorkommen von Leerzeichen in der Quellenzeichenfolge:
function indexOfExample()
text string = "A BC DEF GHIJ" ;
pIndex int = indexOf(text, " ", 0);
while(pIndex != 0);
writeStdOut("Blank index = " + pIndex);
pIndex = indexOf(text, " ", pIndex);
end
end
Die Konsole zeigt die folgenden Zeilen an:
Blank index = 2
Blank index = 5
Blank index = 9