Używając oferowanej przez String'a funckji: replaceAll(), zapisujemy:
String s = "Adam Mickewicz \"Pan Tadeusz\" "; s = s.replaceAll("\"", "\\\"");
efekt - żaden. Taka operacja nic z naszym String'iem nie zrobi. Należy pamiętać, że pierwszy argument funkcji replaceAll, to wyrażenie regularne. Dlatego znak '\', musi być dodatkowo wyeskejpowany dla regexp'a, czyli dopiero:
s = s.replaceAll("\\\"", "\\\\\"");
robi to o co nam chodziło. Zapis iście komiczny, ale co zrobisz...
Można skorzystać z metody replace(), która jako pierwszy argument nie przyjmuje wyrażenia regularnego, a bierze tekst "dosłownie".
OdpowiedzUsuńSprawdź:
s = s.replace("\"", "\\\"");
Ta metoda również podmienia wszystkie wystąpienia danej sekwencji (mimo braku w nazwie "All").
racja
OdpowiedzUsuń