Autor Tema: Java ejercicios resueltos lógica de las comparaciones método equals CU00662B  (Leído 1825 veces)

tripeador

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 21
    • Ver Perfil
Despues de varios dias dándole vueltas, repasando temas pasados y gracias a haber consultado los ejercicios de otros foreros, aquí dejo el ejercicio correspondiente al tema CU00662B del tutorial pdf de programación java de aprenderaprogramar.

Esto empieza a ponerse complicado, me da miedo seguir avanzando  :-[ :'(


Código: [Seleccionar]
import java.util.Scanner;//importa código clase Scanner

public class EntradaTeclado//clase EntradaTeclado
{
    private String entradaTeclado; //Declaracion de campos de instancia de la clase

    public EntradaTeclado (){//Constructor
        entradaTeclado = "";
        pedirEntrada();
    }

    public void pedirEntrada (){//método tipo procedimiento para pedir una entrada de teclado
        Scanner sc1 = new Scanner (System.in);
        entradaTeclado = sc1.nextLine();}
       
    public String getEntradaTeclado () { return entradaTeclado; } //método tipo función para obtener resultado entrada teclado
   
    public int getNumeroLetras (){//metodo tipo función para obtener el numero de letras de una cadena
    return entradaTeclado.length ();
    }
}

Código: [Seleccionar]
import java.util.Scanner;

public class CompararLetras
{
    public static void main (String [] args){
        System.out.println ("Inicio del ejercicio CU00662B\n");
        System.out.print ("Teclea una palabra: ");
        EntradaTeclado palabra1= new EntradaTeclado();
        System.out.println ("La primera palabra introducida es: \"" +palabra1.getEntradaTeclado()+ "\"\n");
        System.out.print ("Teclea otra palabra: ");
        EntradaTeclado palabra2 = new EntradaTeclado ();
        System.out.println ("La segunda palabra introducida es: \"" +palabra2.getEntradaTeclado()+ "\"\n");
       
        int numeroLetrasPalabra1 = palabra1.getNumeroLetras();
        int numeroLetrasPalabra2 = palabra2.getNumeroLetras();
        int mayorNumeroLetras = 0;
        int menorNumeroLetras = 0;
        String palabraCorta = "";
        String ordinalPalabraCorta = "";

        if (numeroLetrasPalabra1>numeroLetrasPalabra2){
            mayorNumeroLetras = palabra1.getNumeroLetras();
            menorNumeroLetras = palabra2.getNumeroLetras();
            palabraCorta = palabra2.getEntradaTeclado();
            ordinalPalabraCorta = "segunda";}
        else{
            mayorNumeroLetras = palabra2.getNumeroLetras();
            menorNumeroLetras = palabra1.getNumeroLetras();
            palabraCorta = palabra1.getEntradaTeclado();
            ordinalPalabraCorta = "primera";}

        for (int i=0;i<mayorNumeroLetras;i++)//Bucle hasta que el numero de letras sea igual que el de la palabra mas larga       
        {
            if (i<menorNumeroLetras){//condición hasta que alcance el numero de letras de la palabra mas corta
                if (palabra1.getEntradaTeclado().substring (i,i+1).equals (palabra2.getEntradaTeclado().substring (i,i+1)))
                {
                    System.out.println ("Las letras número " +(i+1)+ " son IGUALES en ambas palabras:     "+
                        "\""+palabra1.getEntradaTeclado().substring (i,i+1) +"\"" + " y "+"\""
                        +palabra2.getEntradaTeclado().substring (i,i+1)+"\"" );
                }
                else {System.out.println ("Las letras número " +(i+1)+ " son DIFERENTES en ambas palabras:  "+
                        "\""+palabra1.getEntradaTeclado().substring (i,i+1) +"\"" + " y "+"\""
                        +palabra2.getEntradaTeclado().substring (i,i+1)+"\"");}
            }
            else{//cuando el numero de letras sea mayor al de la palabra mas corta
                System.out.print("La " +ordinalPalabraCorta+ " palabra\" "+palabraCorta+"\" no tiene letra "+(i+1)+".\n");
            }
        }
    }
}

« Última modificación: 18 de Octubre 2020, 20:17 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Re:Java CU00662B Ejercicio método equals.
« Respuesta #1 en: 13 de Junio 2020, 19:51 »
Buenas, por favor mirar este hilo donde se explica cómo poner título a los temas en el foro: https://aprenderaprogramar.com/foros/index.php?topic=1460.0 es importante que pongas un título como se indica. Este lo corregiré yo.

La cosa como bien dices se va complicando un poco, pero sólo un poco. Creo que lo más importante es que avances comprendiendo lo que vas haciendo, aunque vayas un poco más lento. A veces asimilar las cosas requiere un poco de tiempo. Y una vez vas asentando los conceptos la complejidad se va diluyendo como un azucarillo en el agua porque cada vez tienes más experiencia...

El ejercicio está bien resuelto, y me gusta cómo has planteado el código pues aunque podría haberse hecho un poco más compacto, la lógica está muy bien autodescrita por el propio código y los nombres de variables. Animo. Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".