Foros del Web » Programación para mayores de 30 ;) » Java »

Quitar signos/simbolos a una String

Estas en el tema de Quitar signos/simbolos a una String en el foro de Java en Foros del Web. Buenos días. Solicito su ayuda pues soy estudiante de ingeniería y curso mi primer curso de programación en Javay estoy algo confundido. La cosa es ...
  #1 (permalink)  
Antiguo 23/10/2014, 12:08
 
Fecha de Ingreso: octubre-2014
Ubicación: Cartago
Mensajes: 4
Antigüedad: 10 años
Puntos: 0
Pregunta Quitar signos/simbolos a una String

Buenos días. Solicito su ayuda pues soy estudiante de ingeniería y curso mi primer curso de programación en Javay estoy algo confundido. La cosa es que tengo que hacer un método que reciba una string "es##taEss$$ssUn--nn%&/naHi&lera/Laaaaarga" y le quite todos los simbolos/signos y que quede como resultado una string como esta: "estaEssssUnnnnaHileraLaaaaarga". Esto es lo que he hecho:

public String QuitarSignos(String hilera1){

for(int letras=0; letras<(hilera1.length()); letras++){
char letrasDeHilera1 = hilera1.charAt(letras);
if((letrasDeHilera1 >= 'A' && letrasDeHilera1 <= 'Z')||(letrasDeHilera1 >= 'a' && letrasDeHilera1 <= 'z')){
String nuevaHilera= "";
nuevaHilera = nuevaHilera + letrasDeHilera1;
hilera1 = nuevaHilera;
}
}
return hilera1;
}

public static void main(String[] args) {
String frase= "es##taEss$$ssUn--nn%&/naHi&lera/Laaaaarga";
ProcesaHilera a= new ProcesaHilera();
a.QuitarSignos(frase);
String hileraSinSignos = a.QuitarSignos(frase);
System.out.println(hileraSinSignos);
}
}

el problema está en que cuando intento copiar nuevaHilera(que es la que tiene la string sin signos/simbolos) a hilera1, lo que me retorna el método es una "e" nada más.

¿Alguna sugerencia? Estoy algo frustrado ya.
  #2 (permalink)  
Antiguo 23/10/2014, 13:01
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Quitar signos/simbolos a una String

Buenas,

Menudo lío. Puedes simplemente usar una expresión regular:

Código Java:
Ver original
  1. private static String quitarSignos(String hilera1) {
  2.     return hilera1.replaceAll("[^\\dA-Za-z ]", "");
  3. }
  4.    
  5. public static void main(String[] args) {
  6.     String frase = "es##taEss$$ssUn--nn%&/naHi&lera/Laaaaarga";
  7.        
  8.     String hileraSinSignos = quitarSignos(frase);
  9.     System.out.println(hileraSinSignos);
  10. }

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 24/10/2014, 08:44
Avatar de jc_moj  
Fecha de Ingreso: septiembre-2009
Ubicación: Andalucía
Mensajes: 137
Antigüedad: 15 años, 2 meses
Puntos: 12
Respuesta: Quitar signos/simbolos a una String

Hola

Código Java:
Ver original
  1. public String QuitarSignos(String hilera1){
  2.  
  3.     for(int letras=0; letras<(hilera1.length()); letras++){
  4.         char letrasDeHilera1 = hilera1.charAt(letras);
  5.         if((letrasDeHilera1 >= 'A' && letrasDeHilera1 <= 'Z')||(letrasDeHilera1 >= 'a' && letrasDeHilera1 <= 'z')){
  6.             String nuevaHilera= "";
  7.             nuevaHilera = nuevaHilera + letrasDeHilera1;
  8.             hilera1 = nuevaHilera; // aquí reemplazas la cadena que tienes que examinar por una letra
  9.         }
  10.     }
  11.     return hilera1;
  12. }
El problema que tienes es que estás usando la variable que recibes como parámetro, hilera1, para ir acumulando las letras que encuentras, así, al primer ciclo del for extraes la primera letra, una e, y se la asignas a esa variable, por lo que pierdes todo su contenido.

Para solucionarlo crea una nueva variable y úsala apara ir acumulando las letras que encuentras.

Saludos

Etiquetas: string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:50.