Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/01/2012, 13:58
Avatar de joanfont
joanfont
 
Fecha de Ingreso: marzo-2008
Ubicación: 127.0.0.1
Mensajes: 66
Antigüedad: 16 años, 2 meses
Puntos: 0
Problema con Arrays

Buenas!

Estoy haciendo una práctica para la carrera, la cual necesita uso de arrays. He estado trabajando con ellos perfectamente hasta hoy que me han empezado a hacer el 'tonto':

Este fragmento de código:

Código Java:
Ver original
  1. public static void main(String[] args) throws IOException {
  2.         Traductor traductor = new Traductor();
  3.         String ruta = "texto.txt";
  4.         String retorno = "";
  5.         BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  6.         System.out.print("Desea especificar un archivo a traducir, de lo contrario se cojerá '"+ruta+"' (s/n) ? ");
  7.         String opcion = in.readLine();
  8.         if(opcion.equals("s") || opcion.equals("S")){
  9.             System.out.print("Introduzca la ruta absoluta del archivo a traducir: ");
  10.             ruta = in.readLine();
  11.         }
  12.         char[] texto = traductor.traducir(ruta).toCharArray();
  13.         int i = 0;
  14.         String temporal;
  15.         while(i<texto.length){
  16.             temporal = "";
  17.             while(texto[i] != ' '){
  18.                 temporal+=texto[i];
  19.                 i++;
  20.             }
  21.             retorno+=traductor.traducir(temporal);
  22.             i++;
  23.         }
  24.         System.out.print(retorno);
  25.     }

Me salta estos errores en la consola de NetBeans

Código:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9
        at pseudotraductor.Main.main(Main.java:34)
Java Result: 1
La linia 34 equivale a:
Código Java:
Ver original
  1. while(texto[i] != ' '){

No tengo ni idea de lo que puede ser

... y los métodos lectura() y traducir ()

Código Java:
Ver original
  1. public String traducir(String palabra) throws IOException{
  2.         String retorno;
  3.         boolean fin = true;
  4.         FileReader fichero = new FileReader(diccionario);
  5.         BufferedReader buffer = new BufferedReader(fichero);
  6.         int i;
  7.         do{
  8.             i = buffer.read();
  9.             String texto="";
  10.             while (i!=-1 && i!=(int)' '){
  11.                 texto += (char)i;
  12.                 i=buffer.read();
  13.             }
  14.             if(!texto.equals(palabra)){
  15.                 do{
  16.                     i=buffer.read();
  17.                 }while(i!=(int)'\n'&&i!=-1);
  18.             }else{
  19.                 fin = false;
  20.             }
  21.         }while(fin && i!=-1);
  22.  
  23.         if (i==-1){
  24.             retorno = palabra;
  25.         }else{
  26.             buffer.read();// elimina els :
  27.             buffer.read();// elimina l'espai que hi ha abans de la traducció de cada paraula
  28.  
  29.             retorno="";
  30.             i=buffer.read();
  31.             while(i!=(int)'\n'&&i!=-1){
  32.                 retorno+=(char)i;
  33.                 i=buffer.read();
  34.             }
  35.             buffer.close();
  36.        }
  37.             traduccion = retorno;
  38.             return retorno;
  39.     }
  40.  
  41.     public String lectura(String archivo) throws IOException{
  42.         FileReader file = new FileReader(archivo);
  43.         BufferedReader buffer = new BufferedReader(file);
  44.         int i = buffer.read();
  45.         String retorno = "";
  46.         while(i!=-1){
  47.             retorno+=(char)i;
  48.             i = buffer.read();
  49.         }
  50.         return retorno;
  51.     }
__________________
http://www.joan-font.com

Programador PHP