Foros del Web » Programación para mayores de 30 ;) » Java »

Capturar 2 enteros separados por una coma y un espacio.

Estas en el tema de Capturar 2 enteros separados por una coma y un espacio. en el foro de Java en Foros del Web. Al intentar capturar 2 enteros separados por un espacio y una coma de la siguiente manera me da error: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Java: Ver original ...
  #1 (permalink)  
Antiguo 29/04/2012, 02:05
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Pregunta Capturar 2 enteros separados por una coma y un espacio.

Al intentar capturar 2 enteros separados por un espacio y una coma de la siguiente manera me da error:

Código Java:
Ver original
  1. System.out.print("Escriba el comando => ");
  2. comando = entrada.nextInt();
  3.     if(comando == 5)
  4.         avance = entrada.nextInt();

Nótese que el objeto entrada está inicializado como Scanner(System.in).

¿Qué es lo que falla?

Saludos.
  #2 (permalink)  
Antiguo 29/04/2012, 03:36
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Capturar 2 enteros separados por una coma y un espacio.

¿Puedes poner exactamente la cadena de entrada y el error?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 29/04/2012, 10:37
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Respuesta: Capturar 2 enteros separados por una coma y un espacio.

Las cadenas de entrada que dieron error fueron:

5, 10 ENTER
5 10 ENTER
5 ENTER 10 ENTER. Curiosamente si antes de la segunda entrada ponía un mensaje de salida, sí funcionaba.

El error que daba era una excepción en Scanner, no recuerdo bien y modifiqué el programa así que no puedo volver a hacerlo :/, pero aún quiero saber a qué se podría deber dicho error.

Saludos.
  #4 (permalink)  
Antiguo 29/04/2012, 13:05
 
Fecha de Ingreso: abril-2012
Ubicación: Canarias
Mensajes: 41
Antigüedad: 12 años
Puntos: 5
Respuesta: Capturar 2 enteros separados por una coma y un espacio.

Siempre puedes obtener un String en vez de enteros, de la siguiente manera:

Código Java:
Ver original
  1. String comando = entrada.nextString();
  2.  
  3. if(comando.contains(",") {
  4. String[] results = comando.trim().split(",");
  5. int a = Integer.parseInt(results[0]);
  6. int b = Integer.parseInt(results[1]);
  7. }else {
  8. String[] results = comando.split(" ");
  9. int a = Integer.parseInt(results[0]);
  10. int b = Integer.parseInt(results[1]);
  11. }
Eso sabiendo que vas a recibir dos enteros, siempre puedes crear tantos enteros como mida el array.

Saludos.
  #5 (permalink)  
Antiguo 29/04/2012, 13:27
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Capturar 2 enteros separados por una coma y un espacio.

Posiblemente la primera lectura de nextInt() funcione bien, pero debes leer la , antes de intentar hacer la segunda lectura.

En cualquier caso, para entradas del usuario es mejor lo que te comenta Doctrina, leer directamente la línea completa como un String y luego analizarla.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: enteros, scanner
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:25.