Autor Tema: Comparar objetos con equals - Ejercicio (CU00662B)  (Leído 1084 veces)

Magore

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 26
    • Ver Perfil
Comparar objetos con equals - Ejercicio (CU00662B)
« en: 12 de Junio 2023, 18:15 »
Buenas tardes.

Adjunto código con mi propuesta de solución para el ejercicio (CU00662B).

Lo he resuelto haciendo uso de dos clases y, aunque a mí me ha funcionado, seguramente hay formas más simples, e incluso más 'elegantes', de resolverlo.

Agradecería las observaciones que queráis hacerme al respecto.

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

public class PalabraIntroducida {
    private String entradaTeclado;
   
    // Constructor:
    public PalabraIntroducida () {
        entradaTeclado = "";
        pedirEntrada();
    }
   
    // Método que lee la entrada del teclado:
    public void pedirEntrada() {
    Scanner entradaEscaner = new Scanner (System.in);
    entradaTeclado = entradaEscaner.nextLine();
    }
   
    // Getters:
    public int getLongitud() {
        return entradaTeclado.length();
    }
    public String getLetra (int i, int j) {
        return entradaTeclado.substring (i,j);
    }
}

Código: [Seleccionar]
public class CompararPalabras {
   
    public static void main (String [] args) {
        // Solicitamos la introducción de las palabras a comparar:
        System.out.println ("Por favor, introduzca la palabra 1: ");
        PalabraIntroducida entrada1 = new PalabraIntroducida();
        System.out.println ("Por favor, introduzca la palabra 2: ");
        PalabraIntroducida entrada2 = new PalabraIntroducida();
       
        // Determinamos las longitudes de las palabras introducidas:
        int longitudPalabraGrande = 0;
        int longitudPalabraPequenia = 0;
        String palabraMenor = "";
       
        if (entrada1.getLongitud() > entrada2.getLongitud()) {
            longitudPalabraGrande = entrada1.getLongitud();
            longitudPalabraPequenia = entrada2.getLongitud();
            palabraMenor = "La palabra 2 ";
        } else if (entrada1.getLongitud() < entrada2.getLongitud()) {
            longitudPalabraGrande = entrada2.getLongitud();
            longitudPalabraPequenia = entrada1.getLongitud();
            palabraMenor = "La palabra 1 ";
        } else {
            longitudPalabraGrande = longitudPalabraPequenia = entrada1.getLongitud();
        }
       
        // Realizamos la comparación hasta la longitud de la palabra menor:
        for (int i=0; i<longitudPalabraPequenia; i++) {
            boolean comparacion = (entrada1.getLetra (i, i+1).equals (entrada2.getLetra (i, i+1)));
            {
                System.out.println ("¿Letra " + (i+1) + " igual en las dos palabras? " + comparacion);
            }
        }
       
        // Finalizamos la salida por pantalla hasta el tamaño de la palabra mayor:
        for (int i=longitudPalabraPequenia+1; i<=longitudPalabraGrande; i++) {
            System.out.println (palabraMenor + "no tiene letra " + i);
        }
    }
}

Un saludo.

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re: Comparar objetos con equals - Ejercicio (CU00662B)
« Respuesta #1 en: 13 de Junio 2023, 00:58 »
La solución parece correcta.

Crear esa clase no era estrictamente necesario, pues en realidad no hace nada que no pueda hacer directamente la clase String.

Sin embargo, al estar en proceso de aprendizaje, está bien para ampliar la práctica y siempre es bueno explorar soluciones distintas, sean óptimas o no.

Es fantástico ver a alguien con estas ganas de aprender  ;)
Saludos.
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

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".