String match = "hello";
String text = "0123456789hello0123456789";
int position = getPosition(match, text); // should be 10, is there such a method?
138
Die Methodenfamilie, die dies tut, ist:
Gibt den Index innerhalb dieser Zeichenfolge des ersten ( oder letzten ) Auftretens des angegebenen Teilstrings zurück [Suche vorwärts ( oder rückwärts ) beginnend mit dem angegebenen Index].
String text = "0123hello9012hello8901hello7890";
String word = "hello";
System.out.println(text.indexOf(word)); // prints "4"
System.out.println(text.lastIndexOf(word)); // prints "22"
// find all occurrences forward
for (int i = -1; (i = text.indexOf(word, i + 1)) != -1; i++) {
System.out.println(i);
} // prints "4", "13", "22"
// find all occurrences backward
for (int i = text.length(); (i = text.lastIndexOf(word, i - 1)) != -1; i++) {
System.out.println(i);
} // prints "22", "13", "4"
Dies funktioniert mit Regex.
Ausgabe :
Allgemeine Regel :
quelle
Siehe den String javadoc
quelle
Einen einzelnen Index finden
Wie andere gesagt haben, verwenden Sie
text.indexOf(match)
, um eine einzelne Übereinstimmung zu finden.Mehrere Indizes finden
Aufgrund des Kommentars von @ StephenC zur Wartbarkeit von Code und meiner eigenen Schwierigkeit , die Antwort von @polygenelubricants zu verstehen , wollte ich einen anderen Weg finden, um alle Indizes einer Übereinstimmung in einer Textzeichenfolge abzurufen. Der folgende Code (der von dieser Antwort geändert wird ) tut dies:
quelle
Verwenden Sie string.indexOf, um den Startindex abzurufen.
quelle
Sie können alle Übereinstimmungen in einer Datei erhalten, indem Sie einfach innerhalb der while-Schleife zuweisen, cool:
quelle
i
durch+1
arbeiten, funktioniert, aber auf ziemlich umständliche Weise. Wie Sie hier gezeigt haben, wird der erstehello
bei gemeldeti == 1
. Es ist viel konsistenter, wenn Sie immer eine 0-basierte Indizierung verwenden.quelle
quelle
Ich habe einen großen Code, arbeite aber gut ...
quelle
quelle
quelle
Wenn Sie nach 'n' Übereinstimmungen der Suchzeichenfolge suchen möchten, würde ich die Verwendung regulärer Ausdrücke empfehlen . Sie haben eine steile Lernkurve, aber sie sparen Ihnen Stunden, wenn es um komplexe Suchvorgänge geht.
quelle
für mehrfaches Auftreten und das in der Zeichenfolge gefundene Zeichen? Ja oder Nein
quelle
quelle