Jump to content
Sign in to follow this  
Papazot3

Problema con validad enteros en java (Pila)

Recommended Posts

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 icon_sad.gif si alguien me puede ayudar icon_biggrin.gif

saludos

Share this post


Link to post
Share on other sites

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 by cañangasñangas

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...