Autor Tema: Java comparar la longitud de dos cadenas y la igualdad entre letras CU00662B  (Leído 2484 veces)

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
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. ;)
« Última modificación: 19 de Octubre 2018, 21:54 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
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

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".