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

transformar y cambiar las palabras de un archivo.txt con java

Estas en el tema de transformar y cambiar las palabras de un archivo.txt con java en el foro de Java en Foros del Web. hola! ¿Me podeis ayudar por favor? Tengo un proyecto con java. el texto es el siguiente: a partir de un archivo txt imprimir el contenido ...
  #1 (permalink)  
Antiguo 10/05/2012, 19:58
 
Fecha de Ingreso: mayo-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
transformar y cambiar las palabras de un archivo.txt con java

hola!
¿Me podeis ayudar por favor?
Tengo un proyecto con java. el texto es el siguiente:
a partir de un archivo txt imprimir el contenido de cada fila recibida.
Una vez que tenemos el archivo de texto, por cada palabra, más grande que tres letras, cambiamos la distribución de las letras, excepto la primera letra y la última letra.
ejemplo:

Imagine there's no heaven, it's easy if you try
No hell below us above us only sky.
Imagine all the people living for today...


transformar:

Iganime tehre's no hveean, it's esay if you try
No hlel bolew us avbove us olny sky.
Iimnage all the pelpoe lvniig for tdaoy...


Una vez que cambie las palabras entrar en otro archivo txt con la puntuacion misma.

Hasta ahora, he hecho esto (y no puedo ir por delante):

Código:
 package ejercicio;    
        
    import java.io.BufferedReader;    
    import java.io.File;    
    import java.io.FileReader;    
    import java.io.IOException;    
    import java.util.Random;    
    import java.util.StringTokenizer;    
        
    /**  
     * @author roby  
     */    
    public class Ejercicio {public static String mixpalablas(String inicio){         
               
            char[] vec1 = inicio.toCharArray();    
            char[] vec2 = inicio.toCharArray();    
                
            Random random = new Random();          
            int r = random.nextInt(vec1.length-1);    
            int i = 0;    
            int j = r+1;    
            while(i <= r){    
               vec2[vec1.length -i-1] = vec1[i];    
                i++;    
            }    
            while (j <= vec1.length -1){    
               vec2[j-r-1] = vec1[j];    
                j++;    
            }    
            String nuevapalabra = String.valueOf(vec2);    
            return nuevapalabra;    
    }    
        
        /**  
         * @param args the command line arguments  
         */    
        public static void main(String[] args) throws IOException {    
            String archivo = "r://ejercicio.txt";    
            String s = "";    
            String token="";    
            int count = 0;    
            int j = 0;    
            int f = 0;    
            int i = 0;    
            boolean t = true;    
            char hola;    
            String q=".,:;?!";    
            String nuevotexto="";    
            String mix="";    
            try {    
                File file = new File(archivo);    
        
                if (file.exists()) {    
                    System.out.println("Il file " + archivo + ": existe");    
                } else if (file.createNewFile()) {    
                    System.out.println("Il file " + archivo + ": ya esta creado");    
                } else {    
                    System.out.println("Il file " + archivo + " :no se puede crear");    
                }    
                System.out.println("");    
        
            } catch (IOException e) {    
                System.out.println("error en la creacion");    
            }    
            try {    
        
                System.out.println("el contenido del archivo es el siguiente: ");    
                System.out.println("");    
                BufferedReader leer = new BufferedReader(new FileReader(archivo));    
        
                while ((s = leer.readLine()) != null) {    
                    System.out.println(s);    
                }    
                leer.close();    
            } catch (IOException e) {    
                System.out.println("error bufferReader");}    
            try {    
                System.out.println("");    
                BufferedReader leer = new BufferedReader(new FileReader(archivo));    
        
                while ((s = leer.readLine()) != null) {    
                    count++;    
                    if (s.charAt(count)!=',')    
                      hola=s.charAt(count);      
                }    
                System.out.println("la lineas son " + count);    
                leer.close();    
            } catch (IOException e) {    
                System.out.println("error bufferReader");    
            }    
            try {    
                System.out.println("");    
                BufferedReader leer = new BufferedReader(new FileReader(archivo));    
                while ((s = leer.readLine()) != null) {    
                    f++;    
                    System.out.println("linea " + f + " = " + s.length() + " letras");    
                }    
                leer.close();    
            } catch (IOException e) {    
                System.out.println("error bufferReader2");    
            }    
            System.out.println("");    
            try {    
                BufferedReader leer = new BufferedReader(new FileReader(archivo));               
                while((s = leer.readLine())!= null){      
          StringTokenizer st = new StringTokenizer(s);      
          while (st.hasMoreTokens()) {    
                token=st.nextToken();     
                if(token.length()>3){    
             nuevotexto = token.replaceAll ("[ \\p{Punct}]", "");    
             mix=mixpalablas(nuevotexto) ;         
             System.out.println(mix);    
          }}}    
                leer.close();    
            } catch (IOException e) {    
                System.out.println("error bufferReader3");    
             }      
        }}
  #2 (permalink)  
Antiguo 11/05/2012, 02:12
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: transformar y cambiar las palabras de un archivo.txt con java

Olvídate de los char, utiliza expresiones regulares.

http://docs.oracle.com/javase/tutorial/essential/regex/

Puedes buscar palabras mayores de 3 y cada vez que las detectas llamar a un método que la desordene.

"\\w{3,}" si buscas palabras con números y letras.
__________________
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 11/05/2012, 02:57
 
Fecha de Ingreso: mayo-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Respuesta: transformar y cambiar las palabras de un archivo.txt con java

gracias por ayudarme!
tu dices las char de la funcion que he utilazado para mezclar las palabras??
yo he ententado a utilizar shuffle pero me da error y no puedo solucionarlo...
hasta ahora està todo dentro el main para ver que esta pasando pero me gusteria dividirlo en funciones...
mi problema de ahora es mezclar la palabra dejando la primera y la ultima en teoria deberia utilizar substing pero no se como y donde ponerla en la funcion que he hecho...
gracias!!!
  #4 (permalink)  
Antiguo 11/05/2012, 03:29
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: transformar y cambiar las palabras de un archivo.txt con java

Para el remix sí utiliza las char, como solo había leído el código por encima pensé que también lo usabas para encontrar las palabras con más de tres caracteres.
__________________
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.
  #5 (permalink)  
Antiguo 11/05/2012, 04:48
 
Fecha de Ingreso: mayo-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Respuesta: transformar y cambiar las palabras de un archivo.txt con java

he cambiado la funcion
Código:
        List<String> letras = Arrays.asList(s.split(""));
            Collections.shuffle(letras);
return letras.toString().replace(",", "").replace("[", "").replace("]", "").replace(" ", "");
    }
asì parese mas ordenado el problema es que como bloqueo la primera y la ultima palabra?
he pensado de utilizar un if con el substring pero me da error
consejos?

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 19:35.