String.replace funktioniert nicht

kaetzacoatl

Bekanntes Mitglied
Hallo,
ich hab keine Ahnung was ich falsch mache:
Java:
ArrayList<String> list = new ArrayList<String>();
		int pls = cmd.indexOf('(');
		int ple = cmd.indexOf(')');
		list.add(cmd.substring(0, pls));
		cmd.replace(list.get(0), "");
		cmd.replace(cmd.substring(ple), "");
		while(cmd.indexOf(',') != -1){
			String str = cmd.substring(0, cmd.indexOf(','));
			list.add(str);
			str += ",";
			cmd.replace(str, "");
		}
		list.add(cmd);
		return (String[]) list.toArray();
Ich hab mir die Strings nach jedem Schleifendurchlauf anzeigen
lassen und habe festgestellt, dass sie sich nicht verändern.
Deshalb vermute ich, dass das Problem bei cmd.replace(str,"");
liegen muss.
Schonmal im Vorraus Danke!
 
Statt
Code:
cmd.replace(x, y);
müsstest du
Code:
cmd = cmd.replace(x, y);
machen.
 
Die API kann in diesem Fall gar nicht anders funktionieren:
Code:
String
s sind unveränderlich, du wirst niemals(*) erleben, dass eine Funktion einen
Code:
String
verändert, also ist die einzige Möglichkeit, eine veränderte Kopie zurückzugeben. Gleiches gilt für [c]Boolean[/c],
Code:
Character
und Unterklassen von
Code:
Number
.

(*) Herr Kabutz hat mal Schweinereien herausgehauen, wie man Strings doch ändern kann, aber das war so ungefähr wie die Java-Version von Mission Impossible.
 
Zuletzt bearbeitet:

Zurück
Oben