2012-02-27 11 views
26

Tengo la siguiente pregunta. En mi aplicación hay una vista de lista. Obtengo itemname de listview y lo transfiero a la vista web como una cadena. ¿Cómo ignorar el caso de esta cadena y cambiar los espacios a guiones bajos?¿Cómo cambiar los espacios para subrayar y hacer que las cuerdas sean insensibles?

Por ejemplo: . Lo transfiero a la siguiente actividad y quiero ignorar el caso y cambiar el espacio para subrayar (quiero obtener first_topic en el resultado). me sale "itemname" en webviewactivity y quieren hacer lo que he descrito para el siguiente código:

String filename = bundle.getString("itemname") + ".html"; 

Por favor, ayuda.

Respuesta

77

uso replaceAll y toLowerCase métodos como éste:

myString = myString.replaceAll(" ", "_").toLowerCase()

+0

Gracias, pero no tengo ningún resultado. Lo uso en actividad como \t \t 'String itemname = bundle.getString (" itemname "); itemname.replaceAll ("", "_"). ToLowerCase(); 'Y luego' String filename = itemname + ".html"; 'Puede que no sea correcto. Por favor échale un vistazo. – Sabre

+3

u necesita escribirlo como itemname = itemname.replaceAll ("", "_"). ToLowerCase(); – everconfusedGuy

+0

@naini respondió ... estos métodos no modifican la cadena, solo devuelven una nueva cadena modificada, por lo que debe asignar el nuevo valor. – shift66

6

Puede utilizar los métodos toLowerCase replaceAll & Pero hay que tener en cuenta que no cambian la cadena (que sólo devuelven una cadena modificada) por lo necesita asignar el reverso a la variable, ej.

String itemname = bundle.getString("itemname"); 
itemname = itemname.replaceAll(" ", "_").toLowerCase(); 
String filename = itemname + ".html"; 
+0

Doh, la pregunta fue respondida como un comentario a la respuesta anterior mientras escribía (y creo que debería haber publicado como comentario - nuevo en StackOverflow) – Zarius

5

Esto funciona para mí:

itemname = itemname.replaceAll("\\s+", "_").toLowerCase(); 

replaceAll("\\s+", "_") en opuesto a replaceAll("\\s+", "_") le está dando de subrayado en el caso de muchos espacios aparecerán en la fila:

"first topic".replaceAll("\\s+", "_") ->first_topic

"first topic".replaceAll(" ", "_") ->first__topic

Cuestiones relacionadas