Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: toni_apr en 01 de Julio 2014, 21:27

Título: Ejercicio CU00662B comparar letra por letra una cadena en java
Publicado por: toni_apr en 01 de Julio 2014, 21:27
Seguidamente de la lección CU00662B incluyo el ejercicio propuesto:
Código: [Seleccionar]
import java.util.Scanner;
/**
 * Detalles de la clase.
 * Pide dos entradas, y compara letra por letra si son iguales o no.
 * @author (Toni)
 * @version (0)
 */
public class ComparaLetraPorLetra {

    // Atributos de la clase ComparaLetraPorLetra
    //nada

    /**
     * Constructor para objetos de la clase ComparaLetraPorLetra
     */
    public ComparaLetraPorLetra() {
        // Inicializa atributos
        //nada
    } // Fin del constructor ComparaLetraPorLetra

    // Siguen los setters para los atributos de la clase ComparaLetraPorLetra

    // Ahora los getters para los atributos de la clase ComparaLetraPorLetra

    // Y seguidamente, procedimientos y funciones varios.
    public static void main (String [] args) {
        System.out.println ("Vamos a comparar dos entradas por teclado. Dame la primera.");
        Scanner entradaEscaner = new Scanner(System.in);
        String entrada1 = entradaEscaner.nextLine();
        System.out.println ("Dame la segunda");
        String entrada2 = entradaEscaner.nextLine();
        System.out.println ("Gracias. Vamos a comparar las entradas:\n\t" +
            "1 " + entrada1 + "\t y \t 2 " + entrada2);
        int largoMax = 0;//longitud de la entrada más larga
        int largo1 = entrada1.length();//longitud de la entrada1
        int largo2 = entrada2.length();//longitud de la enttrada2
        if (largo1 > largo2) {
            largoMax = largo1;
        } else {
            largoMax = largo2;
        }//se actualiza largoMax
        int porcion1 = 0, porcion2 = 0;//porción de las entradas que se va a mostrar
        for (int i = 0; i < largoMax; i++){
            if (i < largo1) { porcion1 = i+1;}//actualiza la porción a mostrar
            if (i < largo2) { porcion2 = i+1;}
            System.out.println ("\n¿La letra " + (i+1) + " es igual en las dos entradas?");
            System.out.print ("\t1 -" + entrada1.substring(0,porcion1) + "-\t2 -" +
                entrada2.substring(0,porcion2) + "-\nRespuesta " + (i+1) + ": ");//muestra las dos porciones
            if (largo1 < i+1) {
                System.out.println ("La entrada 1 no tiene letra " + (i+1));
            } else if (largo2 < i+1) {
                System.out.println ("La entrada 2 no tiene letra " + (i+1));
            } else {
                if (entrada1.substring(i,i+1).equals(entrada2.substring(i,i+1))) {
                    System.out.println ("True.");
                } else {
                    System.out.println ("False.");
                }// fin del if anidado
            }//fin del if
        }//fin del for
        System.out.println ("\tFin de la comparación.");
    } //fin del main
} // Fin de la clase ComparaLetraPorLetra

Espero vuestros comentarios.
Saludos.
Título: Re:Ejercicio CU00662B* comparar letra por letra una cadena en java
Publicado por: Alex Rodríguez en 09 de Septiembre 2014, 08:33
El código es correcto y ya había sido revisado y comentado, aquí únicamente hemos procedido a dividir un hilo del foro que contenía dos ejercicios para dejar un sólo ejercicio por hilo y facilitar la localización y ordenación de temas. Saludos.