2011-01-19 10 views
6

W systemie Android/java próbuję zastąpić przestrzeń w niektórych ciągach za pomocą +, ale to nie działa. Czy robię to źle?Łańcuchy w android/java, replace() nie robią nic.

String string="Hello world"; 
string.replace(" ", "+"); 
+0

Zakładam, że jest to tylko na ten przykład, ale chcę tylko zwrócić uwagę, że nie nazwałbym zmiennej "ciąg" ... –

+1

, jeśli robisz to dla celów kodowania adresu URL, spójrz na Klasa URLEncoder – kgutteridge

Odpowiedz

26

String obiekty są niezmienne, więc metoda replace nie zmienia ciąg ale tworzy nową, że trzeba ponownie zapisać:

String string="Hello world"; 
string = string.replace(" ", "+"); 
+0

+1 Dokładnie. 'String.replace' zwraca ciąg znaków. Jest to akcesor, a nie bezpośredni mutator. –

+0

ahh .. oczywiście. Dzięki. – jor

+0

@jor - jeśli to jest poprawna odpowiedź, zaznacz pole obok niej, aby @Cristian otrzymał kredyt. – I82Much

1

w Javie, klasy StringBuffer zapewnia zmienny ciąg. Metoda replace zwróci ten sam obiekt.