Autor Tema: El método equals, ejercicio CU00662B  (Leído 1017 veces)

Juanfran.ib

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 9
    • Ver Perfil
El método equals, ejercicio CU00662B
« en: 26 de Julio 2023, 13:45 »
Hola, aquí mi propuesta de solución al ejercicio.

He usado la clase EntradaDeTeclado que habíamos creado en un ejercicio anterior. Aquí dejo el código de dicha clase:

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java

// Definimos una clase EntradaDeTeclado

public class EntradaDeTeclado {

    private String entradaTeclado; //Variable de instancia (campo) de la clase


    public EntradaDeTeclado ()  { //Constructor

        entradaTeclado="";

        pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método

    } //Cierre del constructor


    public void pedirEntrada ()  {  //Método de la clase         

        Scanner entradaEscaner = new Scanner (System.in);

        entradaTeclado = entradaEscaner.nextLine ();     } //Cierre del método pedirEntrada


    public String getEntrada () { return entradaTeclado; } //Cierre del método getEntrada

    public String getPrimeraPalabra ()  {

        for (int i=0; i < entradaTeclado.length() - 1; i++) {

            if (entradaTeclado.substring (i, i+1).equals(" ") ) { //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS
                return entradaTeclado.substring(0, i+1);         }
        }

        return entradaTeclado;  //Caso de que no se detecte ningún espacio devolvemos lo que haya

    } //Cierre del método getPrimeraPalabra


    public int getLongitud ()  {  //Método de la clase

        return entradaTeclado.length();

    } //Cierre del método getLongitud

} //Cierre de la clase

La clase ComparadorPalabras es la que realiza lo que se pide en el ejercicio,  soy consciente de que permite comparar palabras y también permite la entrada de frases, incluyendo espacios. Las compara hasta la longitud más larga de las dos cadenas introducidas. Si no es correcto puedo corregirlo para que la entrada que se permita sea sólo de palabras sin espacios :

Código: [Seleccionar]
import java.util.Scanner;
public class ComparadorPalabras {

    public static void main (String [ ] args) {
        System.out.println ("Empezamos el programa");     
        System.out.println ("Por favor introduzca la palabra 1:");
        EntradaDeTeclado entrada1 = new EntradaDeTeclado();
        System.out.println ("Por favor introduzca la palabra 2:");
        EntradaDeTeclado entrada2 = new EntradaDeTeclado();
        System.out.println ("Gracias");
        System.out.println ("La entrada 1 ha sido \"" + entrada1.getEntrada() + "\" y consta de " + entrada1.getLongitud () + " caracteres");
        System.out.println ("La entrada 2 ha sido \"" + entrada2.getEntrada() + "\" y consta de " + entrada2.getLongitud () + " caracteres");
        int i = 0;
        int longitud1 = entrada1.getLongitud () ;
        int longitud2 = entrada2.getLongitud () ;
        int longitud = longitud2;
        if (longitud1>longitud2){longitud = longitud1;
        }//con esto establecemos las veces que se repite el bucle for hasta  la longitud de la cadena más larga de las dos introducidas

        for (i=0; i<longitud;i++)
        {

            int j = i +1;
            String palabra1 =entrada1.getEntrada();
            String palabra2 =entrada2.getEntrada();
            String subcadena1 = "" ;
            String subcadena2 = "";

            if (i<longitud1) {subcadena1 = palabra1.substring(i,j);}
            if (i<longitud2) {subcadena2 = palabra2.substring(i,j);}
            System.out.println ("¿Letra "+ (i+1) + " igual en las dos palabras? "+ subcadena1.equals(subcadena2));
            if (i>=longitud1)
            {
                System.out.println ("La palabra 1 no tiene letra " + (i+1));
            }

            else if (i>=longitud2)
            {
                System.out.println ("La palabra 2 no tiene letra " + (i+1));
            }

            else {
                System.out.println ("La letra "+ (i+1)+" de la palabra 1 es " + subcadena1);
                System.out.println ("La letra "+ (i+1) +" de la palabra 2 es " + subcadena2);}
        }
    }
}

Gracias por vuestra atención.

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re: El método equals, ejercicio CU00662B
« Respuesta #1 en: 27 de Julio 2023, 11:23 »
A mí me parece correcto y la ejecución funciona.
Así que, adelante con el resto del curso  ;D
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".