Programación General > Java
Validar que el usuario solo ponga valores numericos
(1/1)
Boxcarpilot:
Estoy haciendo un programa mediante switch, es un menu del 1 al 8.
Pero cuando coloco algun caracter(simbolos, letras mayusculas y minisculas) marca error....
Que metodo debo usar para q sea lo q sea q el ususario ponga, convertirlo a su equivalente numerico para luego comparar si esta entre 1 y 8??
Osea el punto esq quiero leer un numero sin importar que se introduzcan letras o caracteres
Gracias
Edito, dejo esto para q vean (es POO)
--- Código: Text ---class Proyect { public static void main(String args[]) throws IOException{ int Sel; InputStreamReader menu=new InputStreamReader(System.in); BufferedReader br= new BufferedReader(menu); System.out.println("-----Universidad *************-----n"); System.out.println("-----Facultad *******************-----n"); System.out.println("-----Proyecto de Desarrollo de Software II-----n"); System.out.println("-----Desarrollado por:**********----nnn"); System.out.println("n-----Presione un número del 1 al 8 o el numero 0 para salir-----n"); Sel = Integer.parseInt(br.readLine()); Options obj=new Options(); do { System.out.println("No es un numero entre los solicitadosn"); InputStreamReader menu2=new InputStreamReader(System.in); BufferedReader br2= new BufferedReader(menu2); Sel = Integer.parseInt(br2.readLine()); } while((Sel<0)||(Sel>8)); switch(Sel) { case 0: System.out.println("Cerrando la aplicacion.....n"); break; case 1: obj.Prob1(); break; case 2: obj.Prob2(); break; case 3: obj.Prob3(); break; case 4: obj.Prob4(); break; case 5: obj.Prob5(); break; case 6: obj.Prob6(); break; case 7: obj.Prob7(); break; case 8: obj.Prob8(); break; } }}
shadow_rev:
Primero mira que clase de excepción te tira cuando le metes un caracter distinto a un número, y lo capturas con un try - catch:
--- Código: Text ---try { // El código para solicitar los números}catch(// La excepción que te comentaba anteriormente) { // Mensaje de error y ejecutas nuevamente la rutina}
Te diría cuál es la excepción que arroja, pero en este momento no lo recuerdo :nosweat:
:suerte:
shakka:
Como dice shadow_rev , captura la excepcion NumberFormatException, he aqui un ejemplo:
http://www.javaeecoding.com/JavaBasics/ ... ample.html
arielb:
Con la clase Pattern puedes validar si es un entero y a la ves validar si contiene solo números.
--- Código: Java ---import java.util.regex.Pattern; public class Entero { public Entero() { } public static boolean esEntero(String numero) { if (Pattern.matches("^\d+$", numero)) { return true; } return false; } public static void main(String arg[]) { String dato = new String("343r4"); if (Entero.esEntero(dato)) { System.out.println("Es un Número"); } else { System.out.println("No es un número"); } }}
Navegación
Ir a la versión completa