2011-12-11 13 views
11

que tienen una cadena:toUpperCase en Java no funciona

String c = "IceCream"; 

Si utilizo la función toUpperCase() entonces devuelve la misma cadena, pero quiero conseguir "ICECREAM".

¿Dónde está el problema?

Respuesta

30

El código

String c = "IceCream"; 
String upper = c.toUpperCase(); 
System.out.println(upper); 

imprime correctamente "HELADO". Sin embargo, la cadena c original no se cambia. Las cadenas en Java son immutable por lo que todas las operaciones en la cadena devuelven una nueva copia.

+0

Ver también http://stackoverflow.com/ preguntas/22397861/why-is-string-inmutable-in-java – Raedwald

3

Se supone que debes utilizar de esta manera:

String c = "IceCream"; 
String upper_c = c.toUpperCase(); 
+1

una alternativa también sería 'secuencia de c = "IceCream" .toUpperCase();' –

7

El objeto no se puede cambiar, porque String es inmutable. Sin embargo, puede hacer que el punto de referencia para una nueva instancia, que es todo en mayúsculas:

String c = "IceCream"; 
c = c.toUpperCase(); 
0

Podría ser un problema con su configuración regional. Proveedores:

String c = "IceCream"; 
return c.toUpperCase(Locale.ENGLISH); 
11

¿Espera la variable original, c, que se han modificado por toUpperCase()? Las cadenas son inmutables; métodos tales como .toUpperCase() de retorno nuevas cadenas, dejando el original de un-modified:

String c = "IceCream"; 
String d = c.toUpperCase(); 
System.out.println(c); // prints IceCream 
System.out.println(d); // prints ICECREAM 
Cuestiones relacionadas