Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: arcanFAC en 31 de Marzo 2015, 01:05

Título: Comparar palabras usando el método equals en Java. (Ejercicio CU00662B).
Publicado por: arcanFAC en 31 de Marzo 2015, 01:05
Hola de nuevo  :P :-[ , aquí presento este ejercicio para su correccion respectiva:

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 Comparacion{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String palabra1, palabra2;
        System.out.println("Por favor ingrese dos palabras que desea comparar");
        palabra1 = sc.next();
        palabra2 = sc.next();
        int mayor, contador=0;
        if(palabra1.length() > palabra2.length()){mayor = palabra1.length();}
        else{mayor = palabra2.length();}
        for(int i=0; i<mayor; i++){
            contador ++;
            System.out.print("Letra " + (i + 1) + " igual en las dos palabras? ");
            if(palabra1.length() >= contador && palabra2.length() >= contador){
                if(palabra1.substring(i, i+1).equals(palabra2.substring(i, i+1))){System.out.println("True");}
                else {System.out.println("False");}
            }
            else if(palabra1.length() < palabra2.length()){
                System.out.println("La palabra 1 no tiene letra " + (i+1));
            }
            else {
                System.out.println("La palabra 2 no tiene letra " + (i+1));
            }
        }
    }
}
Título: Re:Aprender java. (CU00662B).Método equals en java.
Publicado por: Marcos Martín en 31 de Marzo 2015, 13:10
Buenas arcanFAC.

El ejercicio esta correcto.

Como algo a mejorar y por ser purista , recuerda inicializar las variables.

Los tipo String a "", int a cero, double a 0.0, etc, ...

Un saludo.
Título: Re:Comparar palabras usando el método equals en Java. (Ejercicio CU00662B).
Publicado por: Ogramar en 01 de Abril 2015, 09:58
Hola arcanFAC, hay un detalle que te podrías plantear: ¿es realmente necesaria la variable contador? Fíjate que tienes esta variable dentro de un bucle for, el propio bucle for ya cuenta, por lo que no sería necesario usar otra variable adicional para contar. En este caso contador equivale a i+1 siendo i la variable que cuenta en el bucle for

El código quedaría así:

Código: [Seleccionar]
import java.util.Scanner;
public class Comparacion2{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String palabra1, palabra2;
        System.out.println("Por favor ingrese dos palabras que desea comparar");
        palabra1 = sc.next();
        palabra2 = sc.next();
        int mayor;
        if(palabra1.length() > palabra2.length()){mayor = palabra1.length();}
        else{mayor = palabra2.length();}
        for(int i=0; i<mayor; i++){
            System.out.print("Letra " + (i + 1) + " igual en las dos palabras? ");
            if(palabra1.length() >= i+1 && palabra2.length() >= i+1){
                if(palabra1.substring(i, i+1).equals(palabra2.substring(i, i+1))){System.out.println("True");}
                else {System.out.println("False");}
            }
            else if(palabra1.length() < palabra2.length()){
                System.out.println("La palabra 1 no tiene letra " + (i+1));
            }
            else {
                System.out.println("La palabra 2 no tiene letra " + (i+1));
            }
        }
    }
}

Salu2

Título: Re:Comparar palabras usando el método equals en Java. (Ejercicio CU00662B).
Publicado por: arcanFAC en 01 de Abril 2015, 19:17
Es vedad, realmente no caí en cuenta mientras lo diseñaba. Gracias por el detalle.Saludos.