ArrayList y StringTokenizer

Tras tu consejo de ayer fui capaz de ejecutar mi programa y algunas de las funciones que hace las cumple, pero hay dos de ellas que me dan error y por muchas vueltas que le doy no consigo encontrarlo.
La clase que tengo errónea es esta:
public static void Entrada() {
       String sCadena;
       try {
       FileReader fichero = new FileReader ("valores.txt");
       BufferedReader lector = new BufferedReader(fichero);
       ArrayList matrizFichero = new ArrayList();
       while ((sCadena = lector.readLine())!=null) {
            StringTokenizer numeros = new StringTokenizer(sCadena, " ");
            if (!((numeros.equals("#"))||(numeros.equals("##")))) {
                  while (numeros.hasMoreTokens()){
                          matrizFichero.add(numeros.nextToken());
                  }
            matrizFichero.add("//");
           }
      }
     Iterator iterador = matrizFichero.listIterator();
     int cont = 0;
     while(iterador.hasNext()) {
           if (iterador.next() == "//") {
                cont++;
          }
     }
     N = cont/2;
     ind = (N++)/2;
     filas = new int[ind][N];
     columnas = new int[N][ind];
     Iterator iterador2 = matrizFichero.listIterator();
     for (j = 0; j
           i = 0;
           while (!iterador2.equals("//")){
                  int numEntero = Integer.parseInt((String) iterador2.next());
                  filas[j] = numEntero;
                  i++;
           }
           while (i
                  filas[j] = 0;
                  i++;
           }
           iterador2.next();
     }
     for (i=0; i
           j = 0;
           while (!iterador2.equals("//")) {
                 int numEntero = Integer.parseInt((String) iterador2.next());
                 columnas[j] = numEntero;
                  j++;
           }
           while (j
                 columnas[j] = 0;
                 j++;
           }
           iterador2.next();
     }
     matriz = new boolean[N][N];
     i=0;
     while (i
           k=0;
           j=0;
           while ((j[j]==0)){
                 int l=0;
                 while (l[j]) {
                        Entrada_Salida.matriz[k]=true;
                        k++;
                        l++;
                 }
           Entrada_Salida.matriz[k]=false;
           }
           while (k
                 Entrada_Salida.matriz[k]=false;
                 k++;
          }
     }
     }
     catch (Exception e) {
           e.printStackTrace();
    ...

1 respuesta

Respuesta
1
Este error te da cuando intentas declarar un numero pero le estas pasando un carácter o varios. Mira bien todos los elementos que sacas de los tokens para filtrar todo lo que no sea un numero. Puedes usar la función isNumber() antes para asegurarte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas