Wortfilter

P

proggo

Gast
Hallo, wie kann man Wörter aus einen Fließtext streichen, welche nur aus einen Buchstaben bestehen (z.B. "a" oder "aa")?
 
P

Proggo

Gast
Das kenne ich, nur fehlt mir noch die richtige Idee, eben nur Wörter bestehend aus einen Buchstaben zu löschen ("a","aa"...). Das bekomme ich nicht hin.
 
P

Proggo

Gast
naja, "Wörter" mit nur ein Zeichen löschen. Wenn es mehrere Zeichen sind, dann wird geschaut ob Buchstabe 2 identisch mit Buchstabe 1 ist. Wenn das der Fall ist und kein weiterer Buchstabe kommt, dann löschen. Und so weiter...

Kann man derartiges Umsetzten mit replaceAll? Oder muss man eher mit einer If-Anweisung die einzelnen Zeichen durchgehen?
 
S

SlaterB

Gast
das ist in der Tat nicht ganz leicht,
entgegen meiner Art will ich dazu einen Code posten weil mich auch selber die Umsetzung interessiert hat,
scheint soweit mit Satzanfang, Satzende und auch mehreren zu entfernenden Wörtern hintereinander zu funktionieren,
allerdings ist dafür mehrfache Ausführung nötig:

Java:
public class Test {
    public static void main(String[] args)  {
        String st = "a bb a aa aaa CaaaC cc c aa";
        String v1 = st;
        String v2;
        while (!(v2 = v1.replaceAll("(^| )(a|aa)( |$)", " ")).equals(v1))
        {
            // solange wiederholen wie noch weiteres ersetzt werden kann, der String sich verändert
            System.out.println(v2);
            v1 = v2;
        }
    }
}
 

Oben