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

Sustituir un caracter desde un archivo

Estas en el tema de Sustituir un caracter desde un archivo en el foro de Java en Foros del Web. Saludos a todos. Quisiera que me ayudaran con el siguiente codigo. Lo que deseo hacer es cambiar los caracteres iguales que mi programa leera desde ...
  #1 (permalink)  
Antiguo 03/07/2011, 12:25
 
Fecha de Ingreso: junio-2009
Mensajes: 88
Antigüedad: 15 años, 4 meses
Puntos: 4
Sustituir un caracter desde un archivo

Saludos a todos. Quisiera que me ayudaran con el siguiente codigo.
Lo que deseo hacer es cambiar los caracteres iguales que mi programa leera desde un archivo por el mismo caracter que comparara con un array incluido en el codigo de mi programa, solo que cubierto con corchetes.

Asi, si en el archivo hay caracter 'O' el programa deberá comparar el array que tengo y si tambien hay caracteres con 'O', los debera cambiar por [O].

Este es el codigo. Cuando lo compilo no me da error. Pero no hace lo que creo que le he puesto a hacer, sino que se queda igual y no logro identificar la causa porque no hay error, supongo que eso lo haria mas facil.

Código Java:
Ver original
  1. import java.io.*;
  2. import java.util.LinkedList;
  3.  
  4. public class Lector {
  5.     public static void main(String[]args){
  6.         try {
  7.            
  8.             FileReader archivo = new FileReader("sopa.txt");
  9.             BufferedReader buff = new BufferedReader(archivo);
  10.             LinkedList caracteresLinea = new LinkedList();
  11.             String linea = buff.readLine();
  12.             char [] charLinea = linea.toCharArray();
  13.             archivo.close();
  14.            
  15.             //GUARDA CADA LETRA EN UN OBJETO STRING EN UN LINKEDLIST
  16.             for (int i = 0; i < charLinea.length; i++){
  17.                 String x = charLinea[i] +"";
  18.                 caracteresLinea.add(x);
  19.                 System.out.print(x);
  20.             }
  21.             System.out.print("\n");
  22.              
  23.             String [] animal = {"F", "O", "B", "O"};
  24.             String [] animalCorchetado = {"[F]", "[O]", "[B]", "[O]"};
  25.            
  26.             for (int i = 0; i < caracteresLinea.size(); i++){
  27.                 for  (int x = 0; x < animal.length; x++) {
  28.                     if ( caracteresLinea.get(i) == animal[x]){
  29.                         caracteresLinea.set(i, animalCorchetado[x]);
  30.                     }
  31.                 }
  32.             }
  33.            
  34.             //Muestra las letras String del LinkedList
  35.             for (int i = 0; i < caracteresLinea.size(); i++){
  36.                 System.out.print(caracteresLinea.get(i));
  37.             }
  38.             System.out.print("\n");
  39.            
  40.         } catch (IOException ex) {
  41.             System.out.println("Error: " + ex.toString());
  42.         }
  43.        
  44.     }
  45. }
Gracias de antemano.
  #2 (permalink)  
Antiguo 03/07/2011, 12:43
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: Sustituir un caracter desde un archivo

Tu código es muy enrevesado, sobre todo teniendo en cuenta que existe el método replace.

Pero bueno, tu problema es que las cadenas no se deben comparar con ==, debe hacerse con equals.

No sé por qué os cuesta tanto usar el debug, o en su defecto usar system.out para ver por donde pasa vuestro programa (con lo necesario que es). Si lo haces verás que caracteresLinea.get(i) == animal[x] nunca es cierta.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 03/07/2011, 13:45
 
Fecha de Ingreso: junio-2009
Mensajes: 88
Antigüedad: 15 años, 4 meses
Puntos: 4
Respuesta: Sustituir un caracter desde un archivo

Saludos Xerelo. Gracias por interesarte en responder mi inquietud.

Tan solo puse el equals funcionó correctamente. Habia olvidado que estaba trabajando con string y no con numeros. Yo uso el out.print para ver que resulta, pero en este caso simplemente me imprimia lo mismo. Gracias!

Etiquetas: sustituir, caracteres
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 14:47.