Variablen String Trennen

CptK

Bekanntes Mitglied
Servus, ich habe einen String, den ich in seine einzelnen Wörter zerlegen möchte. Er soll also an Leerzeichen und Satzzeichen gesplittet werden. Danach sollen alle Wörter und Zeichen in einer ArrayList gespeichert werden.
Mein Ansatz:
Java:
String n[] = text.get(line).split(Pattern.quote(" "));
        for(int i = 0; i < n.length; i++) {
            words.add(n[i]);
        }
Wie mache ich es jetzt, dass nicht nur Leerzeichen, sondern auch die Satzzeichen berücksichtigt werden?
 
Mal unabhängig davon, so was mache ich gerne manuell:
Java:
    static List<String> split(String s) {
        List<String> result = new ArrayList<>();
        boolean inWord = false;
        StringBuilder b = new StringBuilder();
        int i = 0;
        int n = s.length();
        while (i < n) {
            char ch = s.charAt(i++);
            if (Character.isLetter(ch)) {
                b.append(ch);
                inWord = true;
            } else if (inWord) {
                result.add(b.toString());
                b = new StringBuilder();
                inWord = false;
                i--;
            } else {
                if (!Character.isWhitespace(ch)) {
                    result.add(Character.toString(ch));
                }
            }
        }
        return result;
    }
 
Vielleicht passt etwas in der Richtung:
Java:
public static void main(String[] args) {
    Matcher matcher = Pattern.compile("\\W|\\w*").matcher("Hallo, ich bin's.");
    while (matcher.find()) {
        System.out.println(matcher.group());
    }
}
 

Zurück
Oben