Autor Tema: CU00662B. Ejercicio metodo Equals. Diferencia entre igualdad e identidad objetos  (Leído 3451 veces)

Alberto06

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 5
    • Ver Perfil
Hola.
Este ejercicio me costo mucho, pero creo que lo logre. Les envio mi codigo para que me indiquen mis errores. Muchas gracias.

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

public class Comparacion2 {

    public static void main (String [] args) {
        String ingresoTeclado1 = "";
        String ingresoTeclado2 = "";
        System.out.println("Ingresa la 1ra palabra");

        Scanner inScanner = new Scanner(System.in);

        ingresoTeclado1 = inScanner.nextLine();

        System.out.println ("Ingresa la 2da palabra");

        Scanner inScanner2 = new Scanner(System.in);

        ingresoTeclado2 = inScanner2.nextLine();

        System.out.println ("Gracias");

        if (ingresoTeclado1.length() > ingresoTeclado2.length()) {

            for (int i = 0; i < ingresoTeclado2.length(); i++) {

                if (ingresoTeclado1.substring(i, i+1).equals(ingresoTeclado2.substring(i, i+1))) {

                    System.out.println(" La letra numero: " + (i + 1) + " es la misma en ambas palabras? " + ingresoTeclado1.substring (i, i+1).equals(ingresoTeclado2.substring(i, i+1)));

                }

                else {

                    System.out.println (" La letra numero: " + (i + 1) + " es la misma en ambas palabras? " + ingresoTeclado1.substring (i, i+1).equals(ingresoTeclado2.substring(i, i+1)));
                }
            }

            for (int i = (ingresoTeclado2.length()); i < ingresoTeclado1.length(); i++) {

                System.out.println (" La 2da palabra no tiene la letra numero: " + (i + 1) );
            }
        }

        else if (ingresoTeclado1.length() < ingresoTeclado2.length()) {

            for (int i = 0; i < ingresoTeclado1.length(); i++) {

                if (ingresoTeclado1.substring(i, i+1).equals(ingresoTeclado2.substring(i, i+1))) {

                    System.out.println(" La letra numero: " + (i + 1) + " es la misma en ambas palabras? " + ingresoTeclado1.substring (i, i+1).equals(ingresoTeclado2.substring(i, i+1)));

                }

                else {

                    System.out.println (" La letra numero: " + (i + 1) + " es la misma en ambas palabras? " + ingresoTeclado1.substring (i, i+1).equals(ingresoTeclado2.substring(i, i+1)));

                }

            }

            for (int i = (ingresoTeclado1.length()); i < ingresoTeclado2.length(); i++) {

                System.out.println (" La 1ra palabra no tiene la letra numero: " + (i + 1) );
            }
        }

        else {

            for (int i = 0; i < ingresoTeclado1.length() ; i++) {

                if (ingresoTeclado1.substring(i, i+1).equals(ingresoTeclado2.substring(i, i+1))) {

                    System.out.println (" La letra numero: " + (i + 1) + " es la misma en ambas palabras? " + ingresoTeclado1.substring (i, i+1).equals(ingresoTeclado2.substring(i, i+1)));

                }

                else {

                    System.out.println (" La letra numero: " + (i + 1) + " es la misma en ambas palabras? " + ingresoTeclado1.substring (i, i+1).equals(ingresoTeclado2.substring(i, i+1)));

                }
            }
        }
       
        System.out.println (" Ejercicio terminado");
    }
}
 
« Última modificación: 11 de Abril 2015, 10:02 por Alex Rodríguez »

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1978
    • Ver Perfil
Hola en primer lugar felicitarte por haber resuelto el ejercicio, que es un tanto complejo. Si tienes interés en mejorar las cosas mejorables son:

- Hay repetición de código en tu solución. La repetición de código debe evitarse. Esto es una cuestión de diseño del código, no es fácil hacer buenos diseños. Normalmente las personas que saben hacer buenos diseños es porque han practicado mucho y consultado diseños que hacen otras personas y con el tiempo han ido aprendiendo a realizar buenos diseños. Te recomiendo que consultes esta solución propuesta https://www.aprenderaprogramar.com/foros/index.php?topic=2089 y la compares con la tuya. Seguidamente deberías "reformar" tu código por tí mismo tratando de hacerlo más compacto y evitar la repetición.

- Sería aconsejable que para practicar te acostumbres a ir trabajando con programas donde intervenga más de una clase. Por ejemplo aquí podrías haber usado una clase como EntradaDeTeclado.

Saludos

 

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