Heim >Java >javaLernprogramm >Warum stoppt mein Teilstring-Zählalgorithmus nicht?

Warum stoppt mein Teilstring-Zählalgorithmus nicht?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-15 20:31:10367Durchsuche

Why Doesn't My Substring Counting Algorithm Halt?

Warum hält der angegebene Algorithmus nicht an?

Im bereitgestellten Algorithmus wird versucht, die Anzahl der Vorkommen eines Teilstrings zu ermitteln in einer Zeichenfolge. Der Algorithmus ist jedoch darauf ausgelegt, so lange fortzufahren, bis der letzte Index der Teilzeichenfolge in der Zeichenfolge -1 wird. Diese Bedingung wird niemals erfüllt sein, da der letzte Index immer aktualisiert wird, indem die Länge der Teilzeichenfolge hinzugefügt wird. Infolgedessen sucht der Algorithmus unbegrenzt weiter nach der Teilzeichenfolge und wird nie beendet.

Apache Commons Lang zum Zählen von Teilzeichenfolgen verwenden

Ein alternativer Ansatz zum Zählen des Vorkommens von Teilzeichenfolgen ist um die StringUtils.countMatches-Methode von Apache Commons Lang zu verwenden. Diese Methode verwendet eine Zeichenfolge und eine Teilzeichenfolge als Argumente und gibt zurück, wie oft die Teilzeichenfolge in der Zeichenfolge vorkommt. Mit dieser Methode kann das ursprüngliche Problem mit dem folgenden Code gelöst werden:

String str = "helloslkhellodjladfjhello";
String findStr = "hello";

System.out.println(StringUtils.countMatches(str, findStr));

Dieser Code gibt aus:

3

der die Vorkommen der Teilzeichenfolge „hello“ in korrekt zählt Zeichenfolge „helloslkhellodjladfjhello“.

Das obige ist der detaillierte Inhalt vonWarum stoppt mein Teilstring-Zählalgorithmus nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn