Hola buenas, estoy haciendo un curso de java y en un ejercicio tengo que pedir datos al usuario y guardarlos en un arrayList y parece mentira pero el problema lo tengo al pedir los datos por el teclado.
El problema es que despues de leer un dato con nextInt();
al volver a llamar al objeto de la clase Scanner para leer con nextLine();
haya introdocido lo que haya introducido el reconoce una cadena vacia de texto
aqui os dejo el código para que veais.
Código:
package exitae.unidad2;
import java.util.ArrayList;
import java.util.Scanner;
public class Main{
private static ArrayList<Alumno> coleccion = new ArrayList<Alumno>();
private static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
Alumno alm = new Alumno(null,null,0,0,null);
System.out.println("....Nuevo alumno....");
System.out.println("");
System.out.print("Nombre: ");
String nmtmp = scan.nextLine();
while (!nmtmp.equalsIgnoreCase("salir")){
alm.setName(nmtmp);
System.out.print("apellidos: ");
alm.setApe(scan.nextLine()); // Aquí esta el fallo, por debug se ve como devuelve una cadena vacia.
System.out.print("Edad: ");
alm.setEdad(scan.nextInt());
System.out.println("Curso: ");
alm.setCurso(scan.nextLine());
System.out.println("Nota: ");
alm.setNota(scan.nextInt());
coleccion.add(alm);
}
}
}