Autor Tema: Java ejercicio resuelto método equals comparación de objetos CU00662B  (Leído 4287 veces)

ronal.d87

  • Principiante
  • **
  • Mensajes: 72
    • Ver Perfil
Hola a todos, he aqui el desarrollo del ejercicio

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]
package ejemplo;

/*
programa que compara dos cadenas de texto letra por letra

*/
import java.util.Scanner;

public class ComparaLetras {
   
    public ComparaLetras(){
        //Constructor vacio
    }
   
    public static void main(String [] Argumentos){
       
        System.out.println("Programa que compara letras");
        String captura1 = "";
        Scanner escaner1 = new Scanner(System.in);
        String captura2 = "";
        Scanner escaner2 = new Scanner(System.in);
       
        captura1 = escaner1.nextLine();
        captura2 = escaner2.nextLine();
       
        int cadenaMenor=0, cadenaMayor=0, posicion=0;
        //Comparamos la longitud de las cadenas
        if(captura1.length()<captura2.length()){
            cadenaMenor = captura1.length();
            posicion = 1;
            cadenaMayor = captura2.length();
        }else if(captura1.length()>captura2.length()){
            cadenaMenor = captura2.length();
            posicion = 2;
            cadenaMayor = captura1.length();
        }
        for(int  contador = 0 ; contador < cadenaMayor; contador++){
            if(contador < cadenaMenor){
                System.out.println("Comparacion"+(contador+1)+" ¿igual en las dos letras? "
                        +captura1.substring(contador, contador+1).equals(captura2.substring(contador, contador+1)));
            }else{
                System.out.println("La palabra "+posicion+" no tiene letra "+(contador + 1));
            }
        }
    }
}
« Última modificación: 18 de Junio 2015, 18:38 por Alex Rodríguez »
Ronald Mosquera Mancilla

RaGa

  • Moderador Global
  • Intermedio
  • *******
  • APR2.COM
  • Mensajes: 234
    • Ver Perfil
Re:EJERCICIO CU00662B REALIZADO
« Respuesta #1 en: 17 de Junio 2015, 14:20 »
Hola:

El ejercicio está muy bien! Si embargo para que funcione con todas las posibilidades habría que hacer un pequeño cambio.

Este cambio te va a permitir que cuando las dos palabras tengan las misma cantidad de letras siga funcionando (actualmente no lo hace).

El cambio es reemplazar el "else if" , por "else" ¿por qué? porque cuando las dos palabras tienen las misma cantidad de letras no entra ni al "if", ni al "else if", ya que no cumple ninguna de las dos condiciones y el programa se interrumpe.
Por lo tanto, si reemplazamos el "else if" por "else", si la cantidad de letras de las palabras es la misma entrará al else y hará las asignaciones correspondientes.

He aquí la modificación:

Código: [Seleccionar]
package ejemplo;

/*
programa que compara dos cadenas de texto letra por letra

*/
import java.util.Scanner;

public class ComparaLetras {
   
    public ComparaLetras(){
        //Constructor vacio
    }
   
    public static void main(String [] Argumentos){
       
        System.out.println("Programa que compara letras");
        String captura1 = "";
        Scanner escaner1 = new Scanner(System.in);
        String captura2 = "";
        Scanner escaner2 = new Scanner(System.in);
       
        captura1 = escaner1.nextLine();
        captura2 = escaner2.nextLine();
       
        int cadenaMenor=0, cadenaMayor=0, posicion=0;
        //Comparamos la longitud de las cadenas
        if(captura1.length()<captura2.length()){
            cadenaMenor = captura1.length();
            posicion = 1;
            cadenaMayor = captura2.length();
        }else{
            cadenaMenor = captura2.length();
            posicion = 2;
            cadenaMayor = captura1.length();
        }
        for(int  contador = 0 ; contador < cadenaMayor; contador++){
            if(contador < cadenaMenor){
                System.out.println("Comparacion"+(contador+1)+" ¿igual en las dos letras? "
                        +captura1.substring(contador, contador+1).equals(captura2.substring(contador, contador+1)));
            }else{
                System.out.println("La palabra "+posicion+" no tiene letra "+(contador + 1));
            }
        }
    }
}

Analízalo y cualquier duda estamos aquí para ayudarte.

 

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".