Papazot3 Posted November 4, 2016 Report Share Posted November 4, 2016 Hola, necesito ayuda, estoy haciendo una pila en java (la tengo lista), el problema q tengo es que en el la clase menu debo ingresar solo datos enteros, tengo una clase leer para eso pero tampoco me funciona. Clase leer import java.io.*;public class Leer {public static String dato(){String sdato="";try{BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));sdato=bf.readLine();}catch(IOException e){System.err.println("Error:" + e.getMessage());}return sdato;}public static short datoShort(){try{return Short.parseShort(dato());}catch(NumberFormatException e){return Short.MIN_VALUE;}}public static int datoInt(){try{return Integer.parseInt(dato());}catch(NumberFormatException e){return Integer.MIN_VALUE;}}} Clase Menu public class Lista_Pila {public static void main(String[] args) {Lista lista=new Lista();int op=0, opcLCP=0,dat,aux,maxelementospila;maxelementospila=0;do{System.out.println("Ingrese cantidad máximas de elemnto para la Pila(mayor a 0)");maxelementospila =Leer.datoInt();}while(maxelementospila==0);do{Limpiar.cls();System.out.println("Menu de la Pila" + "\n");System.out.println("1) Ingresar Datos");System.out.println("2) Mostrar Datos");System.out.println("3) Elimina Dato");System.out.println("4) Sumar Datos");System.out.println("5) Ordenar Datos");System.out.println("6) Buscar Datos");System.out.println("7) Salir \n");System.out.println("Ingrese su opcion: ");op=Leer.datoInt();MenuPila(op, lista, maxelementospila);}while (op != 7);}public static void MenuPila(int op, Lista lista, int maxele){int dat, aux;switch (op){case 1:Limpiar.cls();if (lista.largo()<maxele){System.out.println("Ingrese Dato: ");dat=Leer.datoInt();lista.agregarAlInicio(dat);System.out.println("Presione Enter para Continuar");aux=Leer.datoInt();}else{Limpiar.cls();System.out.println("Maximo Alcanzado Para la Pila ["+maxele+"]");System.out.println("Presione Enter para Continuar");aux=Leer.datoInt();}break;case 2:Limpiar.cls();System.out.println("El contenido de la Pila es:");lista.mostrar();System.out.println("Presione Enter para Continuar");aux=Leer.datoInt();break;case 3:Limpiar.cls();lista.ultimoNodo();System.out.println("Se elimino el ultimo Dato de la Pila");System.out.println("Presione Enter para Continuar");aux=Leer.datoInt();break;case 4:Limpiar.cls();System.out.println("La suma de total de la pila es:");System.out.println(lista.sumarNodo());System.out.println("Presione Enter para Continuar");aux=Leer.datoInt();break;case 5:Limpiar.cls();System.out.println("Datos Ordenados:");lista.ordenarNodo(lista.largo());System.out.println("Presione Enter para Continuar");aux=Leer.datoInt();break;case 6:Limpiar.cls();System.out.println("Ingrese el dato a Buscar:");dat=Leer.datoInt();lista.encontrar(dat);System.out.println("Presione Enter para Continuar");aux=Leer.datoInt();break;}}} todas las funciones del menu estan funcionando ok, pero todavia se puede ingresar otro tipo de dato, nose donde estoy cometiendo el error si alguien me puede ayudar saludos Link to comment Share on other sites More sharing options...
cañangasñangas Posted November 7, 2016 Report Share Posted November 7, 2016 (edited) Hay un metodo rápido, lo dejo en pseudo me da lata formal: isNum(s){ try{ parsearUnEntero(s); return true; }catch(err){ return false; } }saludos. Edited November 7, 2016 by cañangasñangas Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now