Java - Ayuda error java.util.InputMismatchException

   
Vista:

Ayuda error java.util.InputMismatchException

Publicado por Manuel (2 intervenciones) el 06/07/2016 20:33:05
Hola, soy nuevo en el foro. Acabo de empezar un curso de java en eclipse y me sale el error java.util.InputMismatchException. He mirado letra a letra y punto por punto el codigo de ejemplo y el mio y no veo ninguna diferencia. Os pego el codigo y el error. Gracias y un saludo

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import java.util.Scanner;
 
public class Main {
 
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
 
		 // Usamos como delimitador el dos puntos, o bien cualquier
		 // espacio/fin de línea (el \\s)
		 sc.useDelimiter("[:\\s]");
         // pedimos a usuario que escriba su nombre
		 System.out.print("Por favor escriba su nombre: ");
 
		 // Leer nombre usuario 
		String nombre = sc.nextLine();
 
 
		 // Obtendremos el nombre
		 System.out.println("Bienvenido a nuestra app "+nombre+"\n") ;
 
		 //mostramos al usuario las opciones del menu
		 System.out.print("***** APP REMIX OPERACIONES *****\n"
				 + "1. Realizar suma\n"
				 + "2. Paridad\n"
				 + "3. Número primo\n"
		 		 + "*********************\n");
 
		 System.out.print("Indique una opción del menu: ");
		 int seleccionMenu = sc.nextInt();
 
		  if(seleccionMenu==1) {
			  System.out.print("Ha selecciona la opcion suma\n");
			 Suma();
		  } else if(seleccionMenu==2) {
 
		   System.out.print("Ha selecciona la opcion Paridad");
 
		  } else if(seleccionMenu==3) {
		   System.out.print("Ha selecciona la opcion Número primo");
          } else {
			  System.out.print("No ha seleccionado una opcion valida");
 
		  }
 
	}
 
	private static void Suma() {
		Scanner sc = new Scanner(System.in);
		 sc.useDelimiter("[:\\s]");
 
		 System.out.print("Indique cual es el operando 1: ");
	   int op1 = sc.nextInt();
 
	      System.out.print("Indique cual es el operando 2: ");
	      int op2 = sc.nextInt();
 
	   int resultadoSuma = op1+op2;
 
		 System.out.print("El resultado de "+op1+"+"+op2+"="+resultadoSuma);
 
	}
}


El error:
Por favor escriba su nombre: Manu
Bienvenido a nuestra app Manu

***** APP REMIX OPERACIONES *****
1. Realizar suma
2. Paridad
3. Número primo
*********************
Indique una opción del menu: 1
Ha selecciona la opcion suma
Indique cual es el operando 1: 34
Indique cual es el operando 2: Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Main.Suma(Main.java:55)
at Main.main(Main.java:33)
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

Ayuda error java.util.InputMismatchException

Publicado por Manuel (2 intervenciones) el 06/07/2016 21:49:46
Me respondo a mi mismo para decir que lo he resuelto de esta forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
private static void Suma() {
	Scanner sc = new Scanner(System.in);
		sc.useDelimiter("[:\\s]");
		Scanner en=new Scanner(System.in);
 
		System.out.print("Indique cual es el operando 1: ");
	int op1 = sc.nextInt();
	System.out.print("Indique cual es el operando 2: ");
	int op2 = en.nextInt();
 
	int resultadoSuma = op1+op2;
	System.out.print("El resultado de "+op1+"+"+op2+"=: " +resultadoSuma);
}

Seguramente este muy mal hecho pero así me funciona, agradecería que me dijerais donde esta mi error.
En el programa de ejemplo metia de sc.nextInt() pero a mi al meter el segundo me daba error. Lo probaré poniendo todo en.nextInt();
Edito para decir que usando en todo el código en.nextInt() me va perfectamente, ¿que diferencia hay entre sc.nextInt() y en.nextInt()? ¿Cual debería usar y porque en el ejemplo del profesor si funciona?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar