Wie oft ein String ein anderes [Duplikat] enthält

8

Wie im Betreff wie überprüft man, wie oft eine Zeichenfolge eine andere enthält? Beispiel:

%Vor%

Wenn ich Matcher verwende, erkennt es nur das erste Vorkommen:

%Vor%

Ich kann es so machen, aber Ich möchte unten Java-Bibliotheken wie Scanner, StringTokenizer, Matcher usw. verwenden:

%Vor%     
MOnasz 19.12.2012, 13:30
quelle

5 Antworten

4

Eine Auskleidung für die Lulz

longStr ist die Eingabezeichenfolge. findStr ist die Zeichenfolge, nach der gesucht werden soll. Keine Annahme, außer dass longStr und findStr nicht sein müssen null und findStr müssen mindestens 1 Zeichen haben.

%Vor%

Da zwei Übereinstimmungen als unterschiedlich betrachtet werden, solange sie bei verschiedenen Indizes beginnen und Überschneidungen auftreten können, müssen wir eine Möglichkeit finden, zwischen den Übereinstimmungen zu unterscheiden und zu ermöglichen, dass der übereinstimmende Teil überlappt wird.

Der Trick besteht darin, nur das erste Zeichen der Suchzeichenfolge zu verwenden und Look-Ahead zu verwenden, um den Rest der Suchzeichenfolge zu bestätigen. Dadurch können überlappende Teile neu zugeordnet werden, und durch Entfernen des ersten Zeichens der Übereinstimmung können wir die Anzahl der Übereinstimmungen zählen.

    
nhahtdh 19.12.2012 13:45
quelle
2

Ich denke, das könnte funktionieren, wenn Sie das gesuchte Wort in der Zeichenfolge kennen, die Sie möglicherweise zum Bearbeiten des Regex-Musters tho benötigen.

%Vor%     
Drakoumel 19.12.2012 13:38
quelle
1

Die Klasse Matcher hat zwei Methoden " Start "und" ende ", die den Startindex und Endindex zurückgeben des letzten Spiels. Desweiteren ist die Methode zu finden ein optionaler Parameter "start", bei dem die Suche beginnt.

    
Philipp 19.12.2012 13:37
quelle
0

Einige schnelle Bruce Forte Lösung:

%Vor%

Dies druckt 3. Bitte beachten Ich nehme an, dass keines der String s null ist.

    
Adam Arold 19.12.2012 13:36
quelle
0

Sie können es so machen

%Vor%     
SomeJavaGuy 19.12.2012 13:41
quelle

Tags und Links