×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: Java
Posted by: user2c4f6
Added: Apr 5, 2016 7:40 PM
Views: 7
Tags: menu entrada
Clase Entrada de Datos para Menú basado en consola
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6.  
  7. import java.util.Date;
  8. import java.util.GregorianCalendar;
  9. import java.util.InputMismatchException;
  10. import java.util.Scanner;
  11.  
  12. /**
  13.  *
  14.  * @author jonas
  15.  */
  16. public class EntradaDatos {
  17.    
  18.     static Scanner input=new Scanner(System.in);
  19.    
  20.     static char inputChar(String mensaje){
  21.         char c;
  22.         System.out.print(mensaje+" ");
  23.         c=input.next().charAt(0);
  24.         return c;
  25.     }
  26.  
  27.     static String inputString(String mensaje){
  28.         String str;
  29.         System.out.print(mensaje+" ");
  30.         str=input.nextLine();
  31.         return str;
  32.     }
  33.  
  34.     static byte inputByte(String mensaje){
  35.         boolean correcto;
  36.         byte n=0;
  37.         do{
  38.             correcto=true;
  39.             try{
  40.                 System.out.print(mensaje+" ");
  41.                 n=input.nextByte();
  42.             }
  43.             catch (InputMismatchException e){
  44.                 // System.out.println("Introduzca un número entero");
  45.                 correcto=false;
  46.             }
  47.             finally{
  48.                 borrarBufferTeclado();
  49.             }
  50.         }while (!correcto);
  51.         return n;
  52.     } // fin inputByte
  53.  
  54.     static short inputShort(String mensaje){
  55.         boolean correcto;
  56.         short n=0;
  57.         do{
  58.             correcto=true;
  59.             try{
  60.                 System.out.print(mensaje+" ");
  61.                 n=input.nextShort();
  62.             }
  63.             catch (InputMismatchException e){
  64.                 // System.out.println("Introduzca un número entero");
  65.                 correcto=false;
  66.             }
  67.             finally{
  68.                 borrarBufferTeclado();
  69.             }
  70.         }while (!correcto);
  71.         return n;
  72.     } // fin inputShort
  73.    
  74.     static int inputInt(String mensaje){
  75.         boolean correcto;
  76.         int n=0;
  77.         do{
  78.             correcto=true;
  79.             try{
  80.                 System.out.print(mensaje+" ");
  81.                 n=input.nextInt();
  82.             }
  83.             catch (InputMismatchException e){
  84.                 // System.out.println("Introduzca un número entero");
  85.                 correcto=false;
  86.             }
  87.             finally{
  88.                 borrarBufferTeclado();
  89.             }
  90.         }while (!correcto);
  91.         return n;
  92.     } // fin inputInt
  93.  
  94.     static long inputLong(String mensaje){
  95.         boolean correcto;
  96.         long n=0;
  97.         do{
  98.             correcto=true;
  99.             try{
  100.                 System.out.print(mensaje+" ");
  101.                 n=input.nextLong();
  102.             }
  103.             catch (InputMismatchException e){
  104.                 // System.out.println("Introduzca un número entero");
  105.                 correcto=false;
  106.             }
  107.             finally{
  108.                 borrarBufferTeclado();
  109.             }
  110.         }while (!correcto);
  111.         return n;
  112.     } // fin inputLong
  113.  
  114.     static float inputFloat(String mensaje){
  115.         boolean correcto;
  116.         float n=0f;
  117.         do{
  118.             correcto=true;
  119.             try{
  120.                 System.out.print(mensaje+" ");
  121.                 n=input.nextFloat();
  122.                 if (n==Float.NEGATIVE_INFINITY || n==Float.POSITIVE_INFINITY)
  123.                     correcto=false;
  124.             }
  125.             catch (InputMismatchException e){
  126.                 // System.out.println("Introduzca un número entero");
  127.                 correcto=false;
  128.             }
  129.             catch (NumberFormatException e){
  130.                 // System.out.println("Introduzca un número entero");
  131.                 correcto=false;
  132.             }
  133.             finally{
  134.                 borrarBufferTeclado();
  135.             }
  136.         }while (!correcto);
  137.         return n;
  138.     } // fin inputFloat
  139.    
  140.    
  141.     static double inputDouble(String mensaje){
  142.         boolean correcto;
  143.         double n=0d;
  144.         do{
  145.             correcto=true;
  146.             try{
  147.                 System.out.print(mensaje+" ");
  148.                 n=input.nextDouble();
  149.                 if (n==Double.NEGATIVE_INFINITY || n==Double.POSITIVE_INFINITY)
  150.                     correcto=false;
  151.             }
  152.             catch (InputMismatchException e){
  153.                 // System.out.println("Introduzca un número entero");
  154.                 correcto=false;
  155.             }
  156.             catch (NumberFormatException e){
  157.                 // System.out.println("Introduzca un número entero");
  158.                 correcto=false;
  159.             }
  160.             finally{
  161.                 borrarBufferTeclado();
  162.             }
  163.         }while (!correcto);
  164.         return n;
  165.     } // fin inputDouble
  166.  
  167.  
  168.     static Date inputDate(String mensaje){
  169.         boolean correcto;
  170.         Date fecha_date=null;
  171.         do{
  172.             correcto=true;
  173.             try{
  174.                 String fecha=inputString(mensaje);
  175.                 int anno=Integer.parseInt(fecha.substring(6));
  176.                 int mes=Integer.parseInt(fecha.substring(3,5))-1;
  177.                 int dia=Integer.parseInt(fecha.substring(0,2));
  178.                 GregorianCalendar cal=new GregorianCalendar(anno,mes,dia);
  179.                 fecha_date=new Date(cal.getTimeInMillis());
  180.             }
  181.             catch (InputMismatchException e){
  182.                 // System.out.println("Introduzca un número entero");
  183.                 correcto=false;
  184.             }
  185.             catch (NumberFormatException e){
  186.                 // System.out.println("Introduzca un número entero");
  187.                 correcto=false;
  188.             }
  189.             catch (Exception e){
  190.                 // System.out.println("Introduzca un número entero");
  191.                 correcto=false;
  192.             }
  193.             finally{
  194.                 //borrarBufferTeclado();
  195.             }
  196.         }while (!correcto);
  197.  
  198.         return fecha_date;
  199.     }
  200.  
  201.     static void borrarBufferTeclado(){
  202.         if (input.hasNextLine())
  203.             input.nextLine(); // para limpiar el buffer
  204.     }
  205.        
  206. }
  207.