/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ import java.util.Date; import java.util.GregorianCalendar; import java.util.InputMismatchException; import java.util.Scanner; /** * * @author jonas */ public class EntradaDatos { static Scanner input=new Scanner(System.in); static char inputChar(String mensaje){ char c; System.out.print(mensaje+" "); c=input.next().charAt(0); return c; } static String inputString(String mensaje){ String str; System.out.print(mensaje+" "); str=input.nextLine(); return str; } static byte inputByte(String mensaje){ boolean correcto; byte n=0; do{ correcto=true; try{ System.out.print(mensaje+" "); n=input.nextByte(); } catch (InputMismatchException e){ // System.out.println("Introduzca un número entero"); correcto=false; } finally{ borrarBufferTeclado(); } }while (!correcto); return n; } // fin inputByte static short inputShort(String mensaje){ boolean correcto; short n=0; do{ correcto=true; try{ System.out.print(mensaje+" "); n=input.nextShort(); } catch (InputMismatchException e){ // System.out.println("Introduzca un número entero"); correcto=false; } finally{ borrarBufferTeclado(); } }while (!correcto); return n; } // fin inputShort static int inputInt(String mensaje){ boolean correcto; int n=0; do{ correcto=true; try{ System.out.print(mensaje+" "); n=input.nextInt(); } catch (InputMismatchException e){ // System.out.println("Introduzca un número entero"); correcto=false; } finally{ borrarBufferTeclado(); } }while (!correcto); return n; } // fin inputInt static long inputLong(String mensaje){ boolean correcto; long n=0; do{ correcto=true; try{ System.out.print(mensaje+" "); n=input.nextLong(); } catch (InputMismatchException e){ // System.out.println("Introduzca un número entero"); correcto=false; } finally{ borrarBufferTeclado(); } }while (!correcto); return n; } // fin inputLong static float inputFloat(String mensaje){ boolean correcto; float n=0f; do{ correcto=true; try{ System.out.print(mensaje+" "); n=input.nextFloat(); if (n==Float.NEGATIVE_INFINITY || n==Float.POSITIVE_INFINITY) correcto=false; } catch (InputMismatchException e){ // System.out.println("Introduzca un número entero"); correcto=false; } catch (NumberFormatException e){ // System.out.println("Introduzca un número entero"); correcto=false; } finally{ borrarBufferTeclado(); } }while (!correcto); return n; } // fin inputFloat static double inputDouble(String mensaje){ boolean correcto; double n=0d; do{ correcto=true; try{ System.out.print(mensaje+" "); n=input.nextDouble(); if (n==Double.NEGATIVE_INFINITY || n==Double.POSITIVE_INFINITY) correcto=false; } catch (InputMismatchException e){ // System.out.println("Introduzca un número entero"); correcto=false; } catch (NumberFormatException e){ // System.out.println("Introduzca un número entero"); correcto=false; } finally{ borrarBufferTeclado(); } }while (!correcto); return n; } // fin inputDouble static Date inputDate(String mensaje){ boolean correcto; Date fecha_date=null; do{ correcto=true; try{ String fecha=inputString(mensaje); int anno=Integer.parseInt(fecha.substring(6)); int mes=Integer.parseInt(fecha.substring(3,5))-1; int dia=Integer.parseInt(fecha.substring(0,2)); GregorianCalendar cal=new GregorianCalendar(anno,mes,dia); fecha_date=new Date(cal.getTimeInMillis()); } catch (InputMismatchException e){ // System.out.println("Introduzca un número entero"); correcto=false; } catch (NumberFormatException e){ // System.out.println("Introduzca un número entero"); correcto=false; } catch (Exception e){ // System.out.println("Introduzca un número entero"); correcto=false; } finally{ //borrarBufferTeclado(); } }while (!correcto); return fecha_date; } static void borrarBufferTeclado(){ if (input.hasNextLine()) input.nextLine(); // para limpiar el buffer } }