Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Titomon en 15 de Diciembre 2016, 15:21

Título: Comparación letra a letra de 2 palabras usando equals y bucles en Java CU00662B
Publicado por: Titomon en 15 de Diciembre 2016, 15:21
Buen día,

Adjunto el codigo correspondiente al ejercicio de la entrega No. 62 del curso "Aprender programación Java desde cero"

Código: [Seleccionar]
import java.util.Scanner;
public class Comparador {
    public Comparador () {
    }
   
    public static void main (String [ ] args) {
    System.out.println ("Por favor ingrese la primera palabra:");
    Scanner entradaEscaner1 = new Scanner(System.in);
    String entradaTeclado1 = entradaEscaner1.nextLine();
    System.out.println ("Por favor ingresa la segunda palabra:");
    Scanner entradaEscaner2 = new Scanner(System.in);
    String entradaTeclado2 = entradaEscaner2.nextLine();
   
    int i = 0;
    if (entradaTeclado1.length() > entradaTeclado2.length()) {
        while (i<entradaTeclado2.length()) {
            if (entradaTeclado1.substring(i,i+1).equalsIgnoreCase(entradaTeclado2.substring(i,i+1)) == true){
                System.out.println ("¿Letra " + (i+1) + " igual en las dos palabras? True");
            }
            else { System.out.println ("¿Letra " + (i+1) + " igual en las dos palabras? False"); }
            i++;
        }
        for (int j=1; (i+j)<=entradaTeclado1.length(); j++) {
            System.out.println ("¿Letra " + (i+j) + " igual en las dos palabras? La palabra 2 no tiene letra " + (i+j));
        }
    }
   
    else {
        while (i<entradaTeclado1.length()) {
            if (entradaTeclado1.substring(i,i+1).equalsIgnoreCase(entradaTeclado2.substring(i,i+1)) == true){
                System.out.println ("¿Letra " + (i+1) + " igual en las dos palabras? True");
            }
            else { System.out.println ("¿Letra " + (i+1) + " igual en las dos palabras? False"); }
            i++;
        }
        for (int j=1; (i+j)<=entradaTeclado2.length(); j++) {
            System.out.println ("¿Letra " + (i+j) + " igual en las dos palabras? La palabra 1 no tiene letra " + (i+j));
        }
    }
    }
}


Muchas gracias!!
Título: Re:Comparación letra a letra de 2 palabras usando equals y bucles en Java CU00662B
Publicado por: ESOJ en 16 de Diciembre 2016, 07:22
Buenos días.
El ejercicio llega a la solución que se pedía,aunque el código podría reducirse bastante.Por ejemplo:
Código: [Seleccionar]
import java.util.Scanner;
public class Comparador {
    public Comparador () {
    }

    public static void main (String [ ] args) {
        System.out.println ("Por favor ingrese la primera palabra:");
        Scanner entradaEscaner = new Scanner(System.in);
        String entradaTeclado1 = entradaEscaner.nextLine();
        System.out.println ("Por favor ingresa la segunda palabra:");   
        String entradaTeclado2 = entradaEscaner.nextLine();

        int i = 0;
        int h=0;
        String entrada="";
        String entrada2="";
        if (entradaTeclado1.length() > entradaTeclado2.length()){
            entrada=entradaTeclado2;
            entrada2=entradaTeclado1;
            h=2;}
        else{
            entrada=entradaTeclado1;
            entrada2=entradaTeclado2;
            h=1;}       
        while (i<entrada.length()) {
            if (entradaTeclado1.substring(i,i+1).equalsIgnoreCase(entradaTeclado2.substring(i,i+1))){
                System.out.println ("¿Letra " + (i+1) + " igual en las dos palabras? True");
            }
            else { System.out.println ("¿Letra " + (i+1) + " igual en las dos palabras? False"); }
            i++;
        }
        for (int j=1; (i+j)<=entrada2.length(); j++) {
            System.out.println ("¿Letra " + (i+j) + " igual en las dos palabras? La palabra "+h+" no tiene letra " + (i+j));
        }
    }
}

Un saludo
Título: Re:Comparación letra a letra de 2 palabras usando equals y bucles en Java CU00662B
Publicado por: Titomon en 21 de Diciembre 2016, 17:48
Buenos días ESOJ,

Muchas gracias por tu respuesta. Tienes razón, la forma en que lo haces reduce bastante el código. Gracias por el consejo.

Saludos.