WallHero

TP04E05 Helper

Oct 30th, 2020
658
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package tp;
  2.  
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. import java.util.Scanner;
  6.  
  7. class Helper {
  8.     public static Scanner scanner = new Scanner(System.in);
  9.    
  10.     public static int forceReadPositiveInteger(String msg)
  11.     {
  12.         int ret = 0;
  13.         while(true)
  14.         {
  15.             try
  16.             {
  17.                 System.out.println(msg);
  18.                 while((ret = Integer.parseInt(scanner.next())) < 1) System.out.println("El número a cargar debe ser positivo.\n"+msg);
  19.                 return ret;
  20.             }catch (Exception e) {
  21.                 System.out.println("Error en la carga.");
  22.             }
  23.         }
  24.     }
  25.    
  26.     public static int forceReadRangeInteger(String msg, int a, int b)
  27.     {
  28.         int ret = 0;
  29.         while(true)
  30.         {
  31.             try
  32.             {
  33.                 System.out.println(msg);
  34.                 while((ret = Integer.parseInt(scanner.next())) < a || ret > b) System.out.println("Opción fuera de rango.\n"+msg);
  35.                 return ret;
  36.             }catch (Exception e) {
  37.                 System.out.println("Error en la carga.");
  38.             }
  39.         }
  40.     }
  41.    
  42.    
  43.     public static char forceReadAnLetter(String msg)
  44.     {
  45.         char ret = '\0';
  46.         while(true)
  47.         {
  48.             try
  49.             {
  50.                 String aux;
  51.                 System.out.println(msg);
  52.                 while((aux = scanner.next()).length() > 1 || !Character.isAlphabetic((ret = aux.charAt(0))) ) System.out.println("Se debe cargar una sola letra.\n" + msg);
  53.                 return ret;
  54.             }catch (Exception e) {
  55.                 System.out.println("Error en la carga.");
  56.             }
  57.         }
  58.     }
  59.    
  60.    
  61.     public static int getRandomIntBetweenRange(double min, double max){
  62.         int x = (int) ((int)(Math.random()*((max-min)+1))+min);
  63.         return x;
  64.     }
  65.     public static char generateRandomLetter()
  66.     {
  67.         return ((getRandomIntBetweenRange(0,17)% 2 == 0) ?  (char) (getRandomIntBetweenRange(0, 25)+97): (char) (getRandomIntBetweenRange(0, 25)+65));
  68.     }
  69.    
  70.    
  71.     public static boolean isVowel(char xCh)
  72.     {
  73.         xCh = Character.toLowerCase(xCh);
  74.         return xCh == 'a' || xCh == 'e' || xCh == 'i' || xCh == 'o' || xCh == 'u';
  75.     }
  76.    
  77.     public static String generateRandomString()
  78.     {
  79.         String ret = "";
  80.         for(int i = 0; i < getRandomIntBetweenRange(5, 20); i++)
  81.         {
  82.             ret+=generateRandomLetter();
  83.         }
  84.         return ret;
  85.     }
  86.     public static boolean continueInput(String msg)
  87.     {
  88.         char x = '\0';
  89.         while(true)
  90.         {
  91.             try
  92.             {
  93.                 System.out.println(msg);
  94.                 x =Character.toUpperCase(scanner.next().charAt(0));
  95.                 if(x == 'S' || x == 'N') return x == 'S';
  96.                 System.out.println("Opción inválida, reintente.");
  97.             }catch (Exception e) {
  98.                 System.out.println("Opción inválida, reintente.");
  99.             }
  100.         }
  101.     }
  102.    
  103.     public static boolean isRandom()
  104.     {
  105.         char x = '\0';
  106.         while(true)
  107.         {
  108.             try
  109.             {
  110.                 System.out.println("¿Generar valores aleatorios? (S/N)");
  111.                 x =Character.toUpperCase(scanner.next().charAt(0));
  112.                 if(x == 'S' || x == 'N') return x == 'S';
  113.                 System.out.println("Opción inválida, reintente.");
  114.             }catch (Exception e) {
  115.                 System.out.println("Opción inválida, reintente.");
  116.             }
  117.         }
  118.     }
  119.    
  120.     public static Date readDate()
  121.     {
  122.         while(true)
  123.         {
  124.             try
  125.             {
  126.                 SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
  127.                 System.out.println("Introduzca la fecha dd/MM/yyyy: ");
  128.                 String dateInput = scanner.next();
  129.                 Date ret = sdf.parse(dateInput);
  130.                 return ret;
  131.             }
  132.             catch (Exception e) {
  133.                 System.out.println("Fecha inválida, reintente.");
  134.             }  
  135.         }
  136.     }
  137. }
RAW Paste Data