Beachten Sie, dass die Wortgrenzen auch vom Gebietsschema abhängen. Ich denke, der beste Weg, um es mit Standard-java.text.BreakIterator zu tun. Hier ist ein Beispiel aus dem java.sun.com-Tutorial.
import java.text.BreakIterator;
import java.util.Locale;
public static void main(String[] args) {
String text = "\n" +
"\n" +
"For example I'm extracting a text String from a text file and I need those words to form an array. However, when I do all that some words end with comma (,) or a full stop (.) or even have brackets attached to them (which is all perfectly normal).\n" +
"\n" +
"What I want to do is to get rid of those characters. I've been trying to do that using those predefined String methods in Java but I just can't get around it.\n" +
"\n" +
"Every help appreciated. Thanx";
BreakIterator wordIterator = BreakIterator.getWordInstance(Locale.getDefault());
extractWords(text, wordIterator);
}
static void extractWords(String target, BreakIterator wordIterator) {
wordIterator.setText(target);
int start = wordIterator.first();
int end = wordIterator.next();
while (end != BreakIterator.DONE) {
String word = target.substring(start, end);
if (Character.isLetterOrDigit(word.charAt(0))) {
System.out.println(word);
}
start = end;
end = wordIterator.next();
}
}
Quelle: http://java.sun.com/docs/books/tutorial/i18n/text/word.html
danke :) Ich wusste, dass es nicht etwas schwierig war, konnte einfach nicht herumkommen. –
aktualisiert defekter Link für 'replaceAll()' – raffian
Zu viele Zeichen im Charter-Literal. Wie tippe ich das eigentlich? –