Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: luispdl en 22 de Octubre 2014, 04:17

Título: Ejercicio CU00662B. Comparar igualdad de objetos con el método equals en java.
Publicado por: luispdl en 22 de Octubre 2014, 04:17
La clase principal con el metodo main
Código: [Seleccionar]
public class Comparacion {
    public static void main (String [] args ) {
        System.out.print("Ingrese una cadena: ");
        EntradaDeTeclado entrada1 = new EntradaDeTeclado();
        System.out.print("Ingrese otra cadena: ");
        EntradaDeTeclado entrada2 = new EntradaDeTeclado();
        String cadena1= entrada1.getEntrada();
        String cadena2= entrada2.getEntrada();
        if (cadena1.length()>cadena2.length()) {
            int j=0;
            for (int i=0; i<cadena1.length();i++) {
                if (j<cadena2.length()){
                    System.out.println("¿Letra " + (i+1)+" igual en las dos palabras? "+ cadena1.substring(i, i+1).equals(cadena2.substring(i, i+1)));
                    j++;
                } else {
                    System.out.println("¿Letra " + (i+1)+" igual en las dos palabras? La palabra 2 no tiene letra "+(i+1) );
                    j++;
                }
            }
        } else {
            int j=0;
            for (int i=0; i<cadena2.length();i++) {
                if (j<cadena1.length()){
                    System.out.println("¿Letra " + (i+1)+" igual en las dos palabras? "+ cadena1.substring(i, i+1).equals(cadena2.substring(i, i+1)));
                    j++;
                } else {
                    System.out.println("¿Letra " + (i+1)+" igual en las dos palabras? La palabra 1 no tiene letra "+(i+1) );
                    j++;
                }
            }
        }
    }
}


Clase del capitulo anterior para entrada por teclado
Código: [Seleccionar]
import java.util.Scanner;

public class EntradaDeTeclado {
    private String entradaTeclado;
   
    public EntradaDeTeclado() {
        entradaTeclado="";
        pedirEntrada();
    }
   
    public void pedirEntrada() {
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado= entradaEscaner.nextLine();
    }
   
    public String getEntrada () {
        return entradaTeclado;
    }
   
    public String getPrimeraPalabra () {
        for (int i=0;i<entradaTeclado.length()-1;i++) {
            if (entradaTeclado.substring(i, i+1).equals(" ")) {
                return entradaTeclado.substring(0, i+1);
            }
        }
        return entradaTeclado;
    }
   
    public int getLongitud () {
        return entradaTeclado.length();
    }
   
}
Título: Re:Ejercicio CU00662B. Comparar igualdad de objetos con el método equals en java.
Publicado por: toni_apr en 22 de Octubre 2014, 19:41
Hola luispdl
Tu ejercicio está perfecto :D
Discrimina la igualdad o no de las letras, detecta cuando hay una palabra más larga
Uso correcto de los métodos de la clase String: equals, substring y length

Saludos y adelante.
Título: Re:Ejercicio CU00662B. Comparar igualdad de objetos con el método equals en java.
Publicado por: luispdl en 24 de Octubre 2014, 22:53
Muchas Gracias toni_apr!!! :)
Título: Re:Ejercicio CU00662B. Comparar igualdad de objetos con el método equals en java.
Publicado por: jotase1507 en 20 de Enero 2015, 18:56
Una consulta, como llegaste a esta deduccion

Código: [Seleccionar]

if (j<cadena2.length()){
                    System.out.println("¿Letra " + (i+1)+" igual en las dos palabras? "+ cadena1.substring(i, i+1).equals(cadena2.substring(i, i+1)));
                    j++;
                } else {
                    System.out.println("¿Letra " + (i+1)+" igual en las dos palabras? La palabra 2 no tiene letra "+(i+1) );
                    j++;
}

ademas de eso creo que no era necesario incluir otro contador, podias usar el "i" que usaste en el "for", al menos a mi me funciono asi.

Saludos
Título: Re:Ejercicio CU00662B. Comparar igualdad de objetos con el método equals en java.
Publicado por: Mario R. Rancel en 22 de Enero 2015, 08:02
Hola jotase1507, efectivamente el uso de j parece que "sobra", es decir, tal como dices podría resolverse simplemente usando la misma variable i del for, lo cual es mejor ya que ahorra código y hace el código más legible.

Si quieres un comentario sobre tu código, pégalo para poder revisarlo.

Saludos