str.replace zickt rum
-
String s = ("-(-(-(7)))"); s = s.replace("(-(", "(0-("); // -(0-(-(7))) System.out.println(s); s = s.replace("(-(", "(0-("); // -(0-(0-(7))) System.out.println(s); // warum erst beim zweiten mal?
Kann das jemand nachvollziehen? Ich dachte immer, das String.replace alle vorkommen des gesuchten Teilstrings änder?
-
gleiches verhalten auch bei ziffern
String s = ("212121"); s = s.replace("121", "1021"); System.out.println(s); s = s.replace("121", "1021"); // erst beim zweiten mal! System.out.println(s);
-
sehr seltsam schrieb:
Ich dachte immer, das String.replace alle vorkommen des gesuchten Teilstrings änder?
Und wie oft kommt der Teilstring in s vor? Einmal.
Die Funktion durchsucht nicht die Zwischenergebnisse nach jeder einzelnen Ersetzung. Das wäre auch keine gute Idee, denn dann könnte es leicht passieren, dass das nicht mehr terminiert.