Autor Tema: Java comparar dos palabras por letras siendo una más corta que la otra CU00662B  (Leído 3878 veces)

niurkafer

  • Principiante
  • **
  • Mensajes: 50
    • Ver Perfil
Me ha costado un poco pero me gustaria saber que tal ha quedado el ejercicio CU00662B

Citar
Crea una clase en cuyo método main ejecutes una comparación letra a letra usando equals de dos palabras usando bucles. Por ejemplo si las palabras son “avispa” y “ave” el programa debe dar como resultado: ¿Letra 1 igual en las dos palabras? True. ¿Letra 2 igual en las dos palabras? True ¿Letra 3 igual en las dos palabras? False ¿Letra 4 igual en las dos palabras? La palabra 2 no tiene letra 4 ¿Letra 5 igual en las dos palabras? La palabra 2 no tiene letra 5 ¿Letra 6 igual en las dos palabras? La palabra 2 no tiene letra 6.

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

public class ComparacionLetra {
    private String palabra1;
    private String palabra2;

    public static void main (String [ ] Args) {
        System.out.println ("por favor introduzca La primera Palabra: ");
        Scanner entrada1 = new Scanner(System.in);
        String palabra1 = entrada1.nextLine();
        System.out.println ("por favor introduzca la segunda palabra: ");
        Scanner entrada2 = new Scanner(System.in);
        String palabra2 = entrada1.nextLine();

        if (palabra1.length() >= palabra2.length()){
            int i = 0;

            while (i<palabra2.length()){

                if(palabra1.substring(i,i+1).equalsIgnoreCase(palabra2.substring(i,i+1))){
                    System.out.println ("¿Letra " +(i+1)+" es igual en las dos palabras?: True");
                }

                else{ System.out.println ("¿Letra " +(i+1)+" es igual en las dos palabras?: False");
                }

                i++;
            }

            while(i < palabra1.length()){
                System.out.println("¿Letra " + (i+1) + " es igual en las dos palabras?: La palabra 2 no tiene letra " + (i+1));
                i++;
            }

        }else{
            int i = 0;
            while(i < palabra1.length()){
                if(palabra1.substring(i, i+1).equalsIgnoreCase(palabra2.substring(i, i+1))){
                    System.out.println("¿Letra " + (i+1) + " es igual en las dos palabras?: True");
                }else{
                    System.out.println("¿Letra " + (i+1) + " es igual en las dos palabras?: False");
                }
                i++;
            }

            while(i < palabra2.length()){
                System.out.println("¿Letra " + (i+1) + " es igual en las dos palabras?: La palabra 1 no tiene " +(i+1)+" letras ");
                i++;
            }

        }
    }
}
« Última modificación: 22 de Agosto 2015, 13:15 por César Krall »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Re:Metodos equals en Java CU00662B
« Respuesta #1 en: 21 de Agosto 2015, 23:41 »
Hola niurkafer, el código funciona según solicitaba el ejercicio, no obstante puede mejorarse.

Tu lógica ha sido "si la palabra 1 es más larga hago todo esto" y si la palabra 2 es más larga hago todo esto.

Pero nos queda un código más corto si examinamos las palabras y decimos, palabraMasLarga = ... y palabraMasCorta = ... y con eso solo hay que plantear un bucle y un proceso en lugar de dos, como se hace en el tema www.aprenderaprogramar.com/foros/index.php?topic=2089

Salu2

niurkafer

  • Principiante
  • **
  • Mensajes: 50
    • Ver Perfil
ok vale muchas 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".