Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: paramonso en 19 de Septiembre 2018, 16:43

Título: Java comparar la longitud de dos cadenas y la igualdad entre letras CU00662B
Publicado por: paramonso en 19 de Septiembre 2018, 16:43
Hola. Dejo el Ejercicio CU00662B del tutorial de programación básica Java.
El método equals en Java. Diferencia entre igualdad e identidad. Comparar objetos.

Clase EntradaDeTeclado:

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
// Definimos una clase EntradaDeTeclado aprenderaprogramar.com
public class EntradaDeTeclado {
    private String entradaTeclado; //Variable de instancia (campo) de la clase
    public EntradaDeTeclado ()  { //Constructor
        entradaTeclado="";
        pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método
    } //Cierre del constructor

    public void pedirEntrada ()  {  //Método de la clase         
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado = entradaEscaner.nextLine ();     
    } //Cierre del método pedirEntrada
       
    public String getEntrada () { return entradaTeclado; } //Cierre del método getEntrada
   
    public int getLongitud ()  {  //Método de la clase

        return entradaTeclado.length();

    } //Cierre del método getLongitud

} //Cierre de la clase



Clase ComparacionLetras :

Código: [Seleccionar]
// Nuestra clase de prueba aprenderaprogramar.com
public class ComparacionLetras {
    public static void main (String [ ] args) {
        System.out.print ("EjercicioCU00662B COMPARACION LETRA A LETRA\n\n");     
        System.out.print ("Por favor introduzca la 1ª frase :\n");
        EntradaDeTeclado frase1 = new EntradaDeTeclado();
        System.out.print ("Por favor introduzca la 2ª frase :\n");
        EntradaDeTeclado frase2 = new EntradaDeTeclado();

        int cadenaMasLarga=0; // Variable para sacar la longitud de la cadena mas larga
        // Longitud de las cadenas
        int longCad1=frase1.getLongitud();
        int longCad2=frase2.getLongitud();
        // Sacar la longitud de la cadena mas larga
        if (longCad1>longCad2){
            cadenaMasLarga=longCad1;
        }
        else {
            cadenaMasLarga=longCad2;
        }
        // Variables para la comparacion
        String compara1=frase1.getEntrada();
        String compara2=frase2.getEntrada();

        int n; // Variable entera para realizar las comparaciones

        for(int i=0;i<=cadenaMasLarga-1;i++){
           
            n=i+1;
            if (n<=cadenaMasLarga){
                 
                if (n<=longCad1 && n<=longCad2){
                    System.out.print("¿letra "+(i+1)+" = ?");
                    if (compara1.substring(i,n).equals(compara2.substring(i,n)))
                    {
                        System.out.print(" Verdadero "+compara1.substring(i,n)+" "+compara2.substring(i,n)+"\n");
                    }
                    else{
                        System.out.print(" Falso     "+compara1.substring(i,n)+" "+compara2.substring(i,n)+"\n");
                    }
                }
            }
            if(n>longCad1 ){
            System.out.print("La frase 1 no contiene la letra "+(i+1)+" "+compara2.substring(i,n)+"\n");
            }
            else if( n>longCad2 ){
                System.out.print("La frase 2 no contiene la letra "+(i+1)+" "+compara1.substring(i,n)+"\n");
            }
        }
    } //Cierre del main
} //Cierre de la clase

Gracias. Un Saludo. ;)
Título: Re:Java comparar la longitud de dos cadenas y la igualdad entre letras CU00662B
Publicado por: Ogramar en 19 de Octubre 2018, 21:56
Buenas, el código funciona a la perfección y tiene la originalidad respecto a otras soluciones que se pueden ver en el foro de que va mostrando ambas letras de las dos palabras que se comparan (cuando existen en las dos palabras), así que todo bien ;)

Salu2