Java - Problema con Scanner

   
Vista:

Problema con Scanner

Publicado por mario (1 intervención) el 09/09/2017 16:45:45
Hola buenas tengo un problema y es que quiero introducir datos de dos personas y para introducir los datos uso el scanner y visualizo lo que he metido pero hay un problema y es que cuando voy a empezar a introducir la segunda persona con el scanner no me deja escribir nada en la consola. Este es mi codiho

Clase Persona:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Persona {
	private String nombre;
	private int edad;
	private double altura;
 
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public int getEdad() {
		return edad;
	}
	public void setEdad(int edad) {
		this.edad = edad;
	}
	public double getAltura() {
		return altura;
	}
	public void setAltura(double altura) {
		this.altura = altura;
	}

Class Ejemplo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import java.util.Scanner;
 
public class Ejemplo
{
	public static void main(String[] args)
	{
 
 
		 Scanner entrada=new Scanner(System.in);
		Persona miPersona = new Persona();
 
 
		String nombre;
		int edad;
		double altura;
 
 
		System.out.println("Nombre de la persona: ");
		nombre =  entrada.nextLine();
		miPersona.setNombre(nombre);
 
		System.out.println("Edad de la Persona:");
		edad = entrada.nextInt();
		miPersona.setEdad(edad);
 
 
		System.out.println("Introduzca su Altura:");
		altura = entrada.nextDouble();
		miPersona.setAltura(altura);
 
		System.out.println("Su nombre es: "+ miPersona.getNombre()+" su edad es: "+miPersona.getEdad()+
				" su altura es: "+miPersona.getAltura());
 
 
		Persona miPersona2 = new Persona();
 
 
		System.out.println("Introduzca nombre:");
		nombre = entrada.nextLine();
		miPersona2.setNombre(nombre);
	}
}


Capturaonm
Asi es como me sale pero cuando voy a empezar a introducir la segunda persona no me deja escribir nada en la consola
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con Scanner

Publicado por Thanatos (91 intervenciones) el 09/09/2017 17:42:13
Luego de leer valores numéricos con Scanner, el carácter '\n' (que el usuario ingresa al presionar la tecla enter) se queda almacenado en el buffer. Cuando esto sucede, la siguiente vez que se intenta leer un dato, Scanner consume ese carácter (como si la tecla enter hubiera sido presionada nuevamente), lo que no da tiempo al usuario para escribir la información que se le solicita.

Para limpiar el buffer, escribe esta línea luego de leer la altura:

1
entrada.nextLine();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Javier

Problema con Scanner

Publicado por Javier (29 intervenciones) el 10/09/2017 12:01:26
Hola, este es un error común cuando se leen un tipo de dato numérico y seguidamente un dato String. En el siguiente enlace viene el por qué sucede esto y cómo puedes solucionarlo http://tazasdejava.blogspot.com.es/2017/02/problema-con-nextline-se-salta-una-linea.html
Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Revisar política de publicidad