G
Guest
Gast
Hallo,
ich möchte eine Textsuche ein wenig schneller machen und versuche, die nicht von mir geschriebene Implementiereung des BMHR-Algorithmus dazu zu bringen, mir alle Trefferpositionen anzugeben.
Die Methode searchString liefert nur die Position des ersten Treffers oder -1, wenn es keinen Treffer gibt;
Leider befinde ich mich da in einer Endlosschleife.
ich möchte eine Textsuche ein wenig schneller machen und versuche, die nicht von mir geschriebene Implementiereung des BMHR-Algorithmus dazu zu bringen, mir alle Trefferpositionen anzugeben.
Die Methode searchString liefert nur die Position des ersten Treffers oder -1, wenn es keinen Treffer gibt;
Code:
private void searchTextNew(String pattern) {
String text = g.getSelectedTab().getText();
StringSearch ss = new BoyerMooreHorspoolRaita();
patternLength = pattern.length();
int textLength = text.length();
int j = 0;
while (true) {
int i = ss.searchString(text, pattern);
if (patternLength > text.length() || i == -1) {
break;
}
matches.add(i);
if (i + j > text.length()) {
break;
}
text = text.substring(i + 1 + j);
j = textLength - text.length();
}
for (int l : matches) {
System.out.println(l);
}
}
Leider befinde ich mich da in einer Endlosschleife.