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); } } }