Sería mucho más eficiente si usaras un StringBuilder y le vas dando append() en vez de concatenar con " " + tokens.nextToken(); busca en Google acerca de concatenar en Java con el "+", es bastante ineficiente en memoria y velocidad.
Por otra parte, sobra el trim() del final porque los tokens no traen espacios al principio ni al final, asi que el trim termina no haciendo nada pero tuvo que analizar el String para no hacer nada.
otra ves por las prisas, se revolvieron las ideas y corte y pegue sin ver. gracias si cheque los de StringBuilder y en la doc de java me recomiendan lo mismo.
Submitted by elmachu.18 on Mar, 01/10/2012 - 11:55.
Hola OscarRyz:
Me dices ese codigo quita los espacios innecesarios y deja solo uno.
Si es asi es lo que buscaba, es qoe lo que pasa que algunos usuarios teclean y aumentan espacion innecesarios y lo que queria era validar para que solo este un espacio.
Voy a probarlo y les comento que tal me fue y disculpen si no me hice entender.
Ese replaceAll no cubre todos los casos. Si pones tres espacios entre dos palabras, deja dos, no uno. De hecho tiene broncas con cantidades nones de espacios (si hay 5, deja 3), y de hecho si ejecuto ese código me devuelte (todo esto lo probé en groovysh y en el REPL de Scala y me da lo mismo; compilando Java también me da varios espacios en medio).
No sé, en realidad no he ejecutado el código, pensé que tu ya lo habías hecho. Desde un análisis estático del código ( o sea simple vista ) parece que es lo que quieres, pero ¿porque no lo ejecutas y sales de duda?
@jdd && @ezamudio
Para que replaceAll funcione hay que decirle que si encuentra un espacio seguido de muchos más espacios ( todo esto lo probé en Ryz :D :D :D /* no pude evitarlo */ )
Submitted by elmachu.18 on Mié, 01/11/2012 - 08:00.
Hola amigo OscarRyz: ya probe el codigo:
Cuando ingreso un texto con espacio me quita todo el espacio y me devuelve la cadena todo junto.
Lo que estoy buscando es que solo me permita o convertir que de palabra en palabra solo lo separe un espacio no 2.
PDT:
Este codigo lo ejecuto en el evento Keytyped de JtextField asi:
txtproducto.setText(quitaEspacios(txtproducto.getText()));
En efecto, una simple regex soluciona todo, justamente ahorita tenia la necesidad y lo había echo con un StringTokenizer sin embargo me dio curiosidad y llegue directito aquí :D
StringBuilder
Sería mucho más eficiente si usaras un StringBuilder y le vas dando append() en vez de concatenar con " " + tokens.nextToken(); busca en Google acerca de concatenar en Java con el "+", es bastante ineficiente en memoria y velocidad.
Por otra parte, sobra el trim() del final porque los tokens no traen espacios al principio ni al final, asi que el trim termina no haciendo nada pero tuvo que analizar el String para no hacer nada.
de nuevo.
otra ves por las prisas, se revolvieron las ideas y corte y pegue sin ver. gracias si cheque los de StringBuilder y en la doc de java me recomiendan lo mismo.
Quitar doble espacio a mas
Hola amigos de java quisiera saber como puedo quitar doble espacio o mas de una cadena y solo que se quede con un espacio.
Ayúdenme por favor
En esta pagina por ejemplo hace lo que estoy buscando, estaba intentando ingresar con varios espacios y cuando lo guardo me sale en uno
Uh? No entendí. Lo que puso
Uh? No entendí. Lo que puso Rodrigo te funciona y hace lo que quieres pero ... quieres ayuda? En que?
Si, lo que hace este código es quitar espacios innecesarios y deja solo uno. ¿Cual es el problema?
Usa replaceAll
Espacios en blanco
Hola OscarRyz:
Me dices ese codigo quita los espacios innecesarios y deja solo uno.
Si es asi es lo que buscaba, es qoe lo que pasa que algunos usuarios teclean y aumentan espacion innecesarios y lo que queria era validar para que solo este un espacio.
Voy a probarlo y les comento que tal me fue y disculpen si no me hice entender.
PDT:
Me gusta esta comunidad
!replaceAll
Ese replaceAll no cubre todos los casos. Si pones tres espacios entre dos palabras, deja dos, no uno. De hecho tiene broncas con cantidades nones de espacios (si hay 5, deja 3), y de hecho si ejecuto ese código
me devuelte
(todo esto lo probé en groovysh y en el REPL de Scala y me da lo mismo; compilando Java también me da varios espacios en medio).
@elmachu.18 No sé, en
@elmachu.18
No sé, en realidad no he ejecutado el código, pensé que tu ya lo habías hecho. Desde un análisis estático del código ( o sea simple vista ) parece que es lo que quieres, pero ¿porque no lo ejecutas y sales de duda?
@jdd && @ezamudio
Para que replaceAll funcione hay que decirle que si encuentra un espacio seguido de muchos más espacios ( todo esto lo probé en Ryz :D :D :D /* no pude evitarlo */ )
eso sí funciona
Siempre olvido que el primer argumento de replaceAll es una regex.
me da
.
Ya lo probe
Hola amigo OscarRyz: ya probe el codigo:
Cuando ingreso un texto con espacio me quita todo el espacio y me devuelve la cadena todo junto.
Lo que estoy buscando es que solo me permita o convertir que de palabra en palabra solo lo separe un espacio no 2.
PDT:
Este codigo lo ejecuto en el evento Keytyped de JtextField asi:
txtproducto.setText(quitaEspacios(txtproducto.getText()));
Espero tu pronta respuesta amigo OscarRyz.
problemas al convertir a mayusculas
Hola amigos de java porque cuando utilizo toUpperCase() para convertir a mayusculas y quiero retroceder el cursor no puedo y simepre lo pone al final
Por que no utilizar simplemente
Si no me equivoco esto si regresaria "a b c d"
Correcto, un regex lo soluciona mejor.
Ahora lo aria así, pero hace 5 años no tenia tan pulido esos conocimientos. Saludos.
Valgame jajaja
Ni en cuenta que este post era del 2009
Excelente
En efecto, una simple regex soluciona todo, justamente ahorita tenia la necesidad y lo había echo con un StringTokenizer sin embargo me dio curiosidad y llegue directito aquí :D
Saludos.