2012-05-01 8 views
5

Tengo un texto de edición y quiero contar las palabras en él. Hay algo mal cuando hay nuevas líneas en el texto de edición.Android - java - contar palabras

yo probamos este:

String[] WC = et_note.getText().toString().split(" "); 
Log.i("wordcount", "wc: " + WC.length); 

Este es un texto -> WC: 4

Ésta es

un

texto -> WC: 4

Este es

un simple

texto -> wc: 4

¿Alguna idea?

Respuesta

8

Quiere dividir en cadenas arbitrarias de espacios en blanco, en lugar de simplemente caracteres de espacio. Por lo tanto, use .split("\\s+") en lugar de .split(" ").

+0

¡No está nada mal! Gracias – erdomester

0

Esto funcionaría incluso con múltiples espacios y principales y/o finales espacios y líneas en blanco:

String words = str.trim(); 
if (words.isEmpty()) 
return 0; 
return words.split("\\s+").length; // separate string around spaces 

También es posible usar \\ W aquí en lugar de \\ s, si usted podría tener algo que no sea espacio separando palabras.

0

Sugiero usar BreakIterator. De acuerdo con mi experiencia, esta es la mejor manera de cubrir idiomas no estándar como el japonés, donde no hay espacios que separen las palabras.

Ejemplo de recuento de palabras here.

Cuestiones relacionadas