Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Chentul en 4 Mayo 2014, 07:05 am



Título: Error en lectura de datos con String y Int
Publicado por: Chentul en 4 Mayo 2014, 07:05 am
Hola a todos !!!
Espero y no agobiarlos un este programa tontillo pero no encuentro solución alguna se trata de una simple lectura de datos, anexo el código:
Código:
        String[] materia = new String[3];
        int[] calp = new int [9];
       
        Scanner scan = new Scanner(System.in);
       
        System.out.print("Nombre de la materia I: ");materia[0] = scan.nextLine();
        System.out.print(materia[0]+" ,Parcial I: ");calp[0] = scan.nextInt();
        System.out.print(materia[0]+" ,Parcial II: ");calp[1] = scan.nextInt();
        System.out.print(materia[0]+" ,Parcial III: ");calp[2] = scan.nextInt();
       
        System.out.print("Nombre de la materia II: ");materia[1] = scan.nextLine();
        System.out.print(materia[1]+" ,Parcial I: ");calp[3] = scan.nextInt();
        System.out.print(materia[1]+" ,Parcial II: ");calp[4] = scan.nextInt();
        System.out.print(materia[1]+" ,Parcial III: ");calp[5] = scan.nextInt();
       
        System.out.print("Nombre de la materia III: ");materia[2] = scan.nextLine();
        System.out.print(materia[2]+" ,Parcial I: ");calp[6] = scan.nextInt();
        System.out.print(materia[2]+" ,Parcial II: ");calp[7] = scan.nextInt();
        System.out.print(materia[2]+" ,Parcial III: ");calp[8] = scan.nextInt();
       
        for(int i=0;i<3;i++){System.out.println(materia[i]+" "+calp[i]);}

El algoritmo trata de pedir 3 nombres de materias con sus respectivas calificaciones y imprimirlas en la pantalla, pero, el problema que estoy teniendo, esta, en que al momento de pedir el nombre de la materia II se encima junto con la calificación de del primer parcial y se crashea el programa y no termina.

Una solución que tuve a esto fue primero pedir los primeros 3 nombres de las materias y después empezar a pedir las calificaciones de sus respectivas materias pero no me convence el programa así :S

Gracias por su apoyo y espero y no agobiarles saludos :D


Título: Re: Error en lectura de datos con String y Int
Publicado por: Zoik en 4 Mayo 2014, 10:46 am
Puedes usar la clase StringTokenizer haciendo algo asi:

Código
  1. StringTokenizer st = new StringTokenizer("Matematicas|8|9|7","|");
  2.        while (st.hasMoreTokens()) {
  3.            System.out.println(st.nextToken());
  4.        }

Un saludo.