Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: SonyEd en 13 de Enero 2018, 04:14

Título: Cómo comparar método equals Java Diferencia entre igualdad e identidad CU00662B
Publicado por: SonyEd en 13 de Enero 2018, 04:14
Buen día, pongo aquí el código del ejecicio que se pide en la clase El método equals en Java. Diferencia entre igualdad e identidad. Comparar objetos. Ejemplos. (CU00662B) del tutorial gratuito de aprenderaprogramar.

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

public class Comparacion{

    public static void main(String[] args){
        String pal1="";
        String pal2="";
        String palabra="";
        int tam1=0;
        int tam2=0;
        int mayor=0;
        int menor=0;
        int j=1;

        System.out.println("Ingrese la primera palabra: ");
        Scanner entrada1 = new Scanner(System.in);
        pal1 = entrada1.nextLine();

        System.out.println("Ingrese la segunda palabra: ");
        Scanner entrada2 = new Scanner(System.in);
        pal2 = entrada2.nextLine();

        tam1 = pal1.length();
        tam2 = pal2.length();

        if(tam1<tam2){
            mayor=tam2;
            menor=tam1;
        }else{
            mayor=tam1;
            menor=tam2;
        }

        for(int i=0;i<menor;i++){
            if(pal1.substring(0,i+1).equals(pal2.substring(0,i+1))){
                System.out.println("¿Letra "+j+" igual en las dos palabras? --> Si");
            }else{
                System.out.println("¿Letra "+j+" igual en las dos palabras? --> No");
            }
            j++;
        }

        for(int k=menor+1;k<=mayor;k++){
            if(tam1<tam2){
                palabra="1";
            }else{
                palabra="2";
            }
            System.out.println("¿Letra "+k+" igual en las dos palabras? --> La palabra "+palabra+" no tiene letra "+k);
        }
    }
}
Título: Re:Cómo comparar método equals Java Diferencia entre igualdad e identidad CU00662B
Publicado por: Alex Rodríguez en 25 de Junio 2018, 20:20
Hola, edito la respuesta que había dado. El ejercicio no está bien resuelto. Por ejemplo si se escribe:

Ingrese la primera palabra:
padron
Ingrese la segunda palabra:
patron

El resultado que se obtiene es:

¿Letra 1 igual en las dos palabras? --> Si
¿Letra 2 igual en las dos palabras? --> Si
¿Letra 3 igual en las dos palabras? --> No
¿Letra 4 igual en las dos palabras? --> No
¿Letra 5 igual en las dos palabras? --> No
¿Letra 6 igual en las dos palabras? --> No


Esto no es correcto ya que la cuarta, quinta, sexta letra son iguales y el programa está diciendo que no son iguales. Dónde está el fallo es fácil de ver, así que lo dejo como ejercicio para quien quiera revisar el código.

Saludos