# Bestimmtes Zeichen löschen, nicht durch Leerzeichen ersetzen



## desaster0505 (13. Februar 2007)

Hallo !

Ich will eine bestimmte Zeichenfolge löschen:


```
Ausgabe=Ausgabe.replaceAll("\\[[.[^\\]]]*\\]","");
```

Das funktionert auch, aber er macht mir da ein zusätzliches Leerzeichen hin. Wie kann ich denn sagen, dass es wirklich gelöscht werden soll , sodass da kein Leerzeichen hinzukommt ?

Danke für eure Hilfe


----------



## Thomas Darimont (13. Februar 2007)

Hallo,

gib doch mal ein "konkretes" Anwendungsbeispiel.

Gruß Tom


----------



## lernen.2007 (13. Februar 2007)

Es ist besser du speicherst das ganze in eine String und dann übergibst du es einem Stringbuffer z.B.


```
String example = "halli hallo";
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(new String(example));
//letzte zeichen löschen
stringBuffer.deleteCharAt(example.length()-1);
```
 
Wir wissen noch nicht mal welche Zeichen du wirklich löschen willst.

Gruß


----------



## desaster0505 (13. Februar 2007)

Naja, der reguläre Ausdruck, (bzw. die Wörter die auf das Muster zutreffen) den ich gepostet habe, der wird ja wie man oben sieht durch Leerzeichen ersetzt. In einem längeren Satz entsteht somit zwischen zwei Wörtern nicht ein Leerzeichen sondern ein zweites.

Beispiel:

Das ist ein (hier steht das Muster/Wort was durch ein Leerzeichen ersetzt wird) Satz.
Das ist ein  Satz.  (2 Leerzeichen zwischen "ein" und "Satz")

Beipspiel Ende.

Das möchte ich vermeiden und sagen, dass er das Wort nicht durch ein Leerzeichen ersetzt, sondern, wo das Muster zutrifft, das Wort löscht.

Wenns eine andere Methode gibt, nennt mir die Bitte auch.

Danke


----------



## Thomas Darimont (13. Februar 2007)

Hallo,

wie wär's denn damit?

```
/**
 * 
 */
package de.tutorials;

/**
 * @author Tom
 *
 */
public class RegexExample {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String s = "Das ist ein blöder Satz.";
        System.out.println(s.replaceAll("blöder\\s", ""));
    }
}
```

Gruß Tom


----------



## deepthroat (13. Februar 2007)

Hi.





desaster0505 hat gesagt.:


> Das möchte ich vermeiden und sagen, dass er das Wort nicht durch ein Leerzeichen ersetzt, sondern, wo das Muster zutrifft, das Wort löscht.


Genau das passiert ja auch - da wird nichts durch ein Leerzeichen ersetzt. Das auf das Muster zutreffende Wort wird durch das leere Wort ersetzt - also gelöscht. Nur wenn vor und hinter dem Wort ein Leerzeichen stand, sind es nach der Ersetzung natürlich 2 Leerzeichen hintereinander.

Du könntest ja z.B. nach dem Löschen des gesuchten Wortes nachträglich die doppelten Leerzeichen entfernen. Oder du passt deinen reg. Ausdruck an, so das dieser zusätzlich auch noch ein Leerzeichen enthält.

Gruß


----------

