Autor Tema: Ejercicio CU00662B. El método equals en Java  (Leído 2523 veces)

rogergcc

  • Sin experiencia
  • *
  • Mensajes: 17
    • Ver Perfil
Ejercicio CU00662B. El método equals en Java
« en: 27 de Abril 2015, 02:15 »
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.

Al principio lo estaba haciendo de otra manera pero decidí por la siguiente, bueno me guie del ejercicio anterior:

Clase entradaTexto
Código: [Seleccionar]
class entradaTexto {
    private String textoIngresado;
//constructor
    public entradaTexto(String textoIngresado) {
        this.textoIngresado = textoIngresado;
    }
//constructor por defecto
    public entradaTexto() {
        this.textoIngresado="";
        obtenerTexto();
    }
//setters
    public String getTextoIngresado() {
       
        return textoIngresado;
    }
//getters
    public void setTextoIngresado(String textoIngresado) {
        this.textoIngresado = textoIngresado;
    }
    public void obtenerTexto(){
        Scanner sc = new Scanner(System.in);
        String textoIngresado = sc.next();
       
    }
 
}

Main
Código: [Seleccionar]
public static void main(String[] args) {
       
        System.out.println ("Por favor introduzca la entrada 1:");
        entradaTexto texto1 = new entradaTexto();
        System.out.println(texto1.getTextoIngresado());
        System.out.println ("Por favor introduzca la entrada 2:");
        entradaTexto texto2 = new entradaTexto();
        System.out.println(texto2.getTextoIngresado());
       
        int n;
        String texto_1= texto1.getTextoIngresado();
        System.out.println ("texto_1 : "+ texto_1); // aqui no me imprime el texto_1 porque en la linea anterior no lo asigna
        String texto_2= texto2.getTextoIngresado();
        boolean comparacion ;
        if (texto_1.length() > texto_2.length()) {
            n = texto_1.length();
        }
        else
        {   n = texto_2.length();}
        for (int i = 0; i < n; i++) {
             System.out.println("Letra "+(i+1)+" igual en las dos palabras");
            if (texto_1.substring(i, i+1).equals(texto_2.substring(i, i+1))) {
                comparacion = true;
                System.out.println( comparacion);
            }
            else
            {comparacion = false;
                 System.out.println( comparacion);}
        }
    }

En la main no se porque no puedo asignar un String Texto_1 = texto1.getTextoIngresado(); y por consiguiente el codigo apartir de ahi no se ejecuta
debe ser por variables locales o algo asi, no se.
Y si la lógica esta bien, si se puede mejorar o acortarla y si es mejor tener es lógica en un método en la clase. Gracias.
ahh y si falta codigo para cuando una palabra es mas grande q la otra
Código: [Seleccionar]
La palabra 2 no tiene letra 4
« Última modificación: 27 de Abril 2015, 02:20 por rogergcc »

rogergcc

  • Sin experiencia
  • *
  • Mensajes: 17
    • Ver Perfil
Re:Ejercicio CU00662B. El método equals en Java
« Respuesta #1 en: 27 de Abril 2015, 02:59 »
si hubiera hecho todo en el main quedaría así :
Código: [Seleccionar]
public static void main(String[] args) {
        String p1,p2;
        Scanner sc = new Scanner(System.in);
        System.out.print("Ingrese la 1era Palabra .");p1 = sc.next();
        System.out.print("Ingrese la 2da Palabra .");p2 = sc.next();
        int mayor,menor,aux;
        if (p1.length() > p2.length()) {
            mayor=p1.length();
            menor=p2.length();
            aux = 2;
        }
        else
        {
            mayor=p2.length();
            menor=p1.length();
            aux = 1;
        }
        for (int i = 0; i < mayor; i++) {
            System.out.print("¿ Letra "+(i+1)+" igual en las dos palabras ? ");
            if (i<menor)
                System.out.println(" "+p1.substring(i, i+1).equals(p2.substring(i, i+1)));
            else
               System.out.println(" La palabra " + aux + " no tiene letra " + i);
        }
    }
y si es necesario inicializar string "" e int a 0 ?
« Última modificación: 27 de Abril 2015, 03:02 por rogergcc »

 

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