Heim >Java >javaLernprogramm >Warum stoppt mein Teilstring-Zählalgorithmus nicht?
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!