# Wort aus String löschen



## internet (1. Jun 2010)

Hallo, 
ich möchte das Wort * "Neu: "* aus meinem String löschen. 
Leider funktioniert das noch nicht wie ich möchte:


```
// Das Wort "Neu:" löschen
			if(objekt.getBemerkung().startsWith("Neu: ")){
				objekt.getBemerkung().replaceAll("Neu: ","");
				objekt.setBemerkung(objekt.getBemerkung());
			}
```

Was mache ich falsch?


----------



## Foermchen82 (1. Jun 2010)

replaceAll liefert dir einen String zurück, den du verarbeiten musst. Im original wird es nicht verändert. Nimm also den Rückgabewert und packe ihn in deine "Bemerkung"

[Java]
objekt.setBemerkung(objekt.getBemerkung().replaceAll("Neu: ",""));
[/code]


----------



## faetzminator (1. Jun 2010)

Zusätzlich hast du noch einen syntaktischen Fehler. Ein [c]"[/c] in einem String muss escaped werden: [c]replaceAll("Neu: ",\"")[/c]


----------



## Foermchen82 (1. Jun 2010)

faetzminator hat gesagt.:


> Zusätzlich hast du noch einen syntaktischen Fehler. Ein [c]"[/c] in einem String muss escaped werden: [c]replaceAll("Neu: ",\"")[/c]



Nein das sind zwei Strings. Das Leerzeichen hat mich aber auch erst verwirrt


----------



## internet (1. Jun 2010)

ich möchte aber erst mal noch überprüfen, ob das Wort mit "Neu: " anfängt - wie mache ich das?


----------



## srea (1. Jun 2010)

faetzminator hat gesagt.:


> Zusätzlich hast du noch einen syntaktischen Fehler. Ein [c]"[/c] in einem String muss escaped werden: [c]replaceAll("Neu: ",\"")[/c]



Wie kommst du denn auf sowas?  Die zwei hinteren "" begrenzen den String, durch den ersetzt werden soll. Da muss man nix escapen.

Edit: Wow bin ich langsam


----------



## faetzminator (1. Jun 2010)

Ups, stimmt. Das Problem ist aber nicht das Leerzeichen im String, sondern das _fehlende_ nach dem Komma - aber Ansichtssache 

Edit: @TO: Diesen Code hast du bereits. Die ensprechende Methode ist String (Java Platform SE 6)
Edit2: Mit [c]replaceAll()[/c] würdest du aus "Neu: ich bin Neu: foo" den String "ich bin foo" machen. Du kannst da aber [c]replaceFirst()[/c] verwenden. Oder ganz einfach Regex richtig verwenden - ohne Überprüfung: [c]replaceFirst("^Neu: ", "")[/c].


----------



## internet (1. Jun 2010)

ich bekomme dann aber eine Nullpointer - Exception, wenn es mir das nicht findet!


----------



## faetzminator (1. Jun 2010)

Sicher nicht, weil es dies nicht findet, sondern weil [c]objekt[/c] [c]null[/c] ist oder [c]objekt.getBemerkung()[/c] [c]null[/c] zurückgibt. Da hilft ein [c]if (objekt != null && objekt.getBemerkung() != null)[/c].


----------



## Swoop (1. Jun 2010)

um zu prüfen ob es mit "Neu:" beginnt würde ich:


```
if (object.getText.startsWith("Neu:").trim()){
//Deine Anweisungen
}
```

Wenn das Object jetzt mit Neu: beginnt geht er in den If-Zweig und gut is =)


----------



## faetzminator (1. Jun 2010)

Ich will ja nicht meckern, aber...
- dein Vorschlag ist syntaktisch sowie logisch inkorrekt, du meinst eher [c]object.getText().trim().startsWith("Neu:")[/c]
- der TO spricht gerade von einer NPE


----------



## Swoop (1. Jun 2010)

> ich möchte aber erst mal noch überprüfen, ob das Wort mit "Neu: " anfängt - wie mache ich das?



Das war wohl eher da drauf bezogen ... das mit dem trim war wirklich ein fehler ... hab ich auch nur noch eingefügt weil ich dachte dass es mit dem leerzeichen dann keine probleme mehr geben könnte...


----------

