Advertisement
ABE12unju

ejer1Tp2

Sep 27th, 2022
1,082
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.20 KB | None | 0 0
  1. import java.util.Random;
  2. import java.util.Scanner;
  3. import java.util.Stack;
  4.  
  5. public class ejernum1 {
  6.    
  7.     public static void main(String[] args) {
  8.         // TODO Auto-generated method stub
  9.         menu();
  10.     }
  11.    
  12.     public static void menu() {
  13.         int opcion;
  14.         do {    
  15.             System.out.println("--PILA DE CARACTERES--");
  16.             System.out.println("..........................................");
  17.             System.out.println("1 - Cargar de Forma Manual");
  18.             System.out.println("2 - Cargar de Forma Aleatorio");
  19.             System.out.println("3 - Finalizar");
  20.             System.out.println("..........................................");
  21.             opcion=Helper.getPositiveInt("Ingrese una opcion ");
  22.             switch(opcion){
  23.                 case 1:
  24.                     op1();
  25.                     espera();
  26.                     break;                  
  27.                 case 2:
  28.                     op2();
  29.                     espera();
  30.                     break;
  31.                 case 3:                
  32.                     System.out.println("FIN DEL PROGRAMA");
  33.                     break;
  34.                 default:
  35.                     System.out.println("ERROR-LA OPCION INGRESADA ES INCORRECTA");
  36.             }
  37.         } while (opcion!=3);    
  38.         System.out.println("Gracias :D");
  39.     }
  40.  
  41.     public static void cargarPila(String frase, Stack<Character> pila) {
  42.         for(int i=0;i<frase.length();i++) {
  43.             pila.push(frase.charAt(i));
  44.         }
  45.     }
  46.    
  47.     public static void reemplazo(char actual,char nuevo, Stack<Character> pila) {
  48.         int cantReemplazo=0;
  49.         int pos;
  50.         Stack<Character> caracteresDeLaPila= new Stack<Character>();
  51.         do {
  52.             pos=pila.search(actual);
  53.             if(pos!=-1) {
  54.                 for(int i=1;i<pos;i++) {
  55.                     caracteresDeLaPila.push(pila.pop());
  56.                 }
  57.                 pila.pop();
  58.                 pila.push(nuevo);
  59.                 for(int i=1;i<pos;i++) {
  60.                     pila.push(caracteresDeLaPila.pop());
  61.                 }
  62.             }else {
  63.                 System.out.println("Elemento no encontrado!");
  64.             }
  65.             cantReemplazo+=1;
  66.         } while (pila.search(actual)!=-1);
  67.         System.out.println("------------------------------------------");
  68.         System.out.println("Cantidad de elementos reemplazados: "+cantReemplazo);
  69.         System.out.println("------------------------------------------");
  70.         System.out.println("Caracter con los elementos reemplazados: "+pila);
  71.         System.out.println("------------------------------------------");
  72.     }
  73.    
  74.     public static void op1() {
  75.         Scanner lectura= new Scanner(System.in);
  76.         Stack<Character> pilaCaracteres =new Stack<Character>();
  77.         System.out.println("..........................................");
  78.         System.out.println("---INGRESE LOS CARACTERES---");
  79.         System.out.println("..........................................");
  80.         String frase=lectura.nextLine();
  81.         cargarPila(frase,pilaCaracteres);
  82.         System.out.println(" ");
  83.         System.out.println(pilaCaracteres);
  84.         System.out.println(" ");
  85.         System.out.println("Escriba que Caracter desea reemplazar: ");
  86.         System.out.println(" ");
  87.         char actual=lectura.next().charAt(0);
  88.         System.out.println(" ");
  89.         System.out.println("Ingrese el Caracter Nuevo: ");
  90.         System.out.println(" ");
  91.         char nuevo=lectura.next().charAt(0);
  92.         reemplazo(actual,nuevo,pilaCaracteres);
  93.     }
  94.     public static void op2() {
  95.         String frase;
  96.         frase = aleatorio();
  97.         Scanner lectura= new Scanner(System.in);
  98.         Stack<Character> pilaCaracteres =new Stack<Character>();
  99.         System.out.println("..........................................");
  100.         System.out.println("---CARACTERES ALEATORIOS---");
  101.         System.out.println("..........................................");
  102.         cargarPila(frase,pilaCaracteres);
  103.         System.out.println(pilaCaracteres);
  104.         System.out.println(" ");
  105.         System.out.println("Escriba que Caracter desea reemplazar: ");
  106.         System.out.println(" ");
  107.         char actual=lectura.next().charAt(0);
  108.         System.out.println(" ");
  109.         System.out.println("Ingrese el Caracter Nuevo: ");
  110.         System.out.println(" ");
  111.         char nuevo=lectura.next().charAt(0);
  112.         reemplazo(actual,nuevo,pilaCaracteres);
  113.     }
  114.    
  115.     public static String aleatorio() {
  116.         Scanner num0b=new Scanner(System.in);
  117.         System.out.println("-Ingresar el rango de caracteres que desea generar: ");
  118.         System.out.println("---------------");
  119.         System.out.println("-Valor Maximo: ");
  120.         int max=num0b.nextInt();
  121.         System.out.println("---------------");
  122.         String res = "";
  123.         for(int i=0;i<max;i++) {
  124.             int aleatorio = (int)((Math.random() *(('z'-'a')+1)+'a'));
  125.             char letra=(char) aleatorio;
  126.             res = res+letra;
  127.         }
  128.         return res;
  129.     }
  130.    
  131.     @SuppressWarnings("resource")
  132.     public static void espera (){ //Este modulo detiene el proceso hasta que el ususario precione "enter"
  133.         Scanner waitForKeypress = new Scanner(System.in);
  134.         System.out.print("Presiona la tecla Enter para continuar....");
  135.         waitForKeypress.nextLine();
  136.     }
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement