2011-01-19 12 views
6

En android/java, estoy tratando de reemplazar el espacio en algunas cadenas con un +, pero parece que no funciona. ¿Lo estoy haciendo mal?Cadenas en android/java, replace() no hace nada

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

Supongo que es solo para este ejemplo, pero solo quiero señalar que no nombraría una variable "cadena" .... –

+1

si está haciendo esto con fines de codificación URL, eche un vistazo al URLEncoder clase – kgutteridge

Respuesta

26

String objetos son inmutables, por lo que el método replace no cambia la cadena, sino que crea una nueva que tiene que volver a guardar:

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

+1 Exactamente. 'String.replace' devuelve una cadena. Es un accesorio, no un mutador directo. –

+0

ahh .. por supuesto. Gracias. – jor

+0

@jor - si esta es la respuesta correcta, marque la casilla al lado para que @Cristian obtenga crédito. – I82Much

1

En Java, la clase StringBuffer proporciona una cuerda mutable El método de reemplazo devolverá el mismo objeto.