Como puedes eliminar los espacios en blanco utilizando la potencia de Java.

Por descargarpseint / hace 6 meses / 0 Comentarios ».

En el mini-manual que te estoy presentando en este momento te voy a enseñar a eliminar espacios en java. Lo primero que vamos a hacer es definir que queremos que haga nuestro programa java a través de un ejemplo simple y claro. Seguidamente iremos definiendo, paso a paso, todas aquellas variables, objetos, clases y métodos que nos hagan falta para construir una solución simple, clara y efectiva. En el proceso iremos introduciendo métodos y conceptos java fundamentales que te ayudarán a comprender como programar en java enfocándonos en resolver problemas. Finalmente,  te mostraré la solución completa para que puedas comprobar si has entendido el problema y su solución.

Describiendo el problema a resolver

Lo primero que vamos a hacer es describir el problema que pretendemos resolver y que te servirá para comprender como puedes eliminar espacios en java. Para ello te muestro cual va a ser la salida del programa que vamos a desarrollar.

Cadena Original:     Programar EnJava

Cadena Sin Espacios en Extremos: Programar EnJava

Cadena ProgramarEnJava: ProgramarEnJava

  • Cadena Original:Se trata del String que contiene espacios en blanco, tanto al comienzo de la cadena como en medio de la misma. Hago esta distinción porque te voy a ofrecer 2 soluciones diferentes para resolver cada una de las casuísticas.
  • Cadena Sin Espacios en Extremos:Se trata de un String resultado de aplicar la primera de las soluciones que vamos a implementar en los siguientes subapartados.
  • Cadena ProgramarEnJava:Aquí puedes ver el resultado final del programa java que vamos a programar. Transformar la cadena         Programar EnJava en la cadena ProgramarEnJava.

Programando la primera solución Mostrar por pantalla la Cadena Original.

Una vez descrito el problema comenzamos a programar su solución. Para ello vamos a construir una clase que contenga el método main y dentro de este una variable de tipo String que contenga la cadena original.

package com.programarenjava.tutorialbasico;

import java.util.StringTokenizer;

public class EliminarEspaciosEnJava {

        /**

         * @param args

         */

        public static void main(String[] args) {

               String cadenaConEspacios = "    Programar EnJava";   

               System.out.println("Cadena Original: "+cadenaConEspacios);

        }

}

El programa tiene 2 líneas donde declaramos la cadena origen y mostramos por salida estandard el valor de la misma:       Programar EnJava.

Añadir el código que construye la Cadena sin Espacios en Extremos.

Para conseguir eliminar ese incómodo espacio que aparece a la izquierda de la cadena original la clase String nos ofrece un método llamado trim cuya función es justamente la de eliminar espacios, tanto a la izquierda como a la derecha.

System.out.println("Cadena Sin Espacios en Extremos: "+

cadenaConEspacios.trim());

¿Qué hace internamente el método trim?.

  1. Recorre la cadena origen buscando espacios dentro del String.
  2. Va guardando en un nuevo Stringla cadena resultado sin los espacios laterales.

Es muy importante que tengas esto en cuenta porque, aunque esta funcionalidad es muy cómoda a la hora de utilizarla, tiene un coste de espacio de memoria considerable. Cada vez que apliques esta función sobre un objeto String no estarás modificando el original, sino construyendo un segundo objeto. Esta es una de las razones por las cuales los programas java y mas concretamente, las aplicaciones comerciales desarrolladas en este lenguaje, consumen mucha memoria RAM del equipo donde se ejecutan.

Otro problema de esta solución es que no es capaz de eliminar los espacios internos. Es cierto que muchos problemas de búsquedas por cadenas y de inserción de datos en formularios web se pueden resolver con esta sencilla solución, sin embargo, hay otros casos donde nos puede interesar eliminar los espacios internos de una cadena. En estas situaciones es necesario implementar una solución mas elaborada que te voy a mostrar a continuación.

Eliminando los espacios interiores de la cadena ProgramarEnJava.

La solución actual nos va a resultar útil para un gran número de casos, sin embargo, los requisitos del problema que te he planteado al inicio van mas allá y también exigen la eliminación de los espacios interiores.

Java no nos ofrece un método que directamente haga este trabajo (al menos hasta java 7), sin embargo, programando unas líneas de código vamos a conseguir una solución práctica y a la vez elegante.  Para desarrollar el algoritmo que implementa el método eliminarEspacios (que te muestro a continuación) me he apoyado en esta solución que apareció como  ejemplo esta entrada de la web Linea de Código.

        private static String eliminarEspacios(String cadenaConEspacios) {

               StringTokenizer tokenizer = new StringTokenizer(cadenaConEspacios);

               StringBuilder cadenaSinEspacios = new StringBuilder();

               while(tokenizer.hasMoreTokens()){

                       cadenaSinEspacios.append(tokenizer.nextToken());

               }

               return cadenaSinEspacios.toString();

        }

Lo primero a comentar es que hemos encapsulado las líneas de código que eliminan los espacios en blanco extrayendo dicho código en un método. Este recibe como parámetro la cadena origen (un String) y devuelve como resultado otra cadena sin los espacios en blanco.

Dentro del código de la función hay 4 apartados, muy importantes, que considero que debes entender:

  • Utilizar la clase StringTokenizerpara convertir el String que recibe como parámetro en una lista de tokens tomando como carácter separador los espacios en blanco.
  • Que hagas uso de clase StringBuilderno es fundamental para la resolver el problema de los espacios en blanco, sin embargo, es una clase muy recomendable cuando pretendas concatenar Strings.
  • El bucle whilejunto al método hasMoreTokens te van a servir para saber cuando ya no quedan mas tokens (o fragmentos de cadena) que procesar. Este método devolverá falso en dicho caso y por ello será la condición de parada del bucle while.
  • La combinación del método nextTokende StringTokenizer con el método appendde StringBuilder te van a permitir extraer un fragmento de cadena e introducirlo en la cadena resultado (Aquí es donde estamos construyendo el resultado excluyendo los espacios en blanco).
  • Finalmente, utilizando el método toStringde StringBuilder podrás recuperar un nuevo String libre de espacios en blanco.

Resultado final. Código completo que nos permite eliminar espacios en java.

package com.programarenjava.tutorialbasico;

import java.util.StringTokenizer;

public class EliminarEspaciosEnJava {

        /**

         * @param args

         */

        public static void main(String[] args) {

               String cadenaConEspacios = "    Programar EnJava";          

               String programarEnJava = eliminarEspacios(cadenaConEspacios);

               System.out.println("Cadena Original: "+cadenaConEspacios);

               System.out.println("Cadena Sin Espacios en Extremos: "+cadenaConEspacios.trim());

               System.out.println("Cadena ProgramarEnJava: "+programarEnJava);

        }

        private static String eliminarEspacios(String cadenaConEspacios) {

               StringTokenizer tokenizer = new StringTokenizer(cadenaConEspacios);

               StringBuilder cadenaSinEspacios = new StringBuilder();

               while(tokenizer.hasMoreTokens()){

                       cadenaSinEspacios.append(tokenizer.nextToken());

               }

               return cadenaSinEspacios.toString();

        }

}

Hasta aquí este pequeño tutorial sobre los Strings en Java que espero que te haya ayudando a comprender como se pueden eliminar los espacios en blanco dentro de java. Además has conocido un par de clases muy útiles para el uso de los Strings (StringTokenizer y StringBuilder). Si tienes alguna duda o deseas realizar alguna aportación puedes dejar tu comentario/duda aquí o ponerte en contacto conmigo.

¿Cuéntame cuales han sido tus experiencias con los espacios dentro de cadenas?

Ver: Descargar pseint

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *