Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/12/2012, 19:25
Avatar de Hateoner
Hateoner
 
Fecha de Ingreso: octubre-2012
Ubicación: Madrid, Spain
Mensajes: 7
Antigüedad: 12 años
Puntos: 1
Clase Scanner metodo nextLine()

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

}