Autor Tema: Java. Método equals para comparar Strings comparar palabras en BlueJ CU00662B  (Leído 4760 veces)

Luis Fdo Carvajal

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 37
    • Ver Perfil
Respuesta a Pensar en objetos. Una entrada de teclado o consola en Java como objeto con campos y métodos. (CU00661B)

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]
import java.util.Scanner;
/**
 *
 * @author ITCO1724
 */
public class TestEntradaDeTeclado {
    public static void main (String [ ] args) {
   
     
        System.out.println ("Empezamos el programa");     
        System.out.println ("Por favor introduzca la entrada 1:");
       
        String cadena1="";
        Scanner x = new Scanner (System.in); //Creación de un objeto Scanner
           cadena1 = x.nextLine (); //Invocamos un método sobre un objeto Scanner
           

     
        System.out.println ("Por favor introduzca la entrada 2:");
       
        String cadena2="";
        Scanner y = new Scanner (System.in); //Creación de un objeto Scanner
           cadena2 = y.nextLine (); //Invocamos un método sobre un objeto Scanner
           

       
        int i = 0;
        try {
        for (i=0;i<= cadena1.length(); i++ ) {
            if (cadena1.substring(i,i+1).equalsIgnoreCase(cadena2.substring(i,i+1))){
                System.out.println ("¿Letra " + (i+1) + " igual en las dos palabras? True");
               
            }
            else {
               
                System.out.println ("¿Letra " + (i+1) + " igual en las dos palabras? False"); }
           
        }
        }
        catch (Exception e) {
       
       
        }

    } //Cierre del main
} //Cierre de la clase
« Última modificación: 18 de Junio 2017, 19:35 por Alex Rodríguez »

Luis Fdo Carvajal

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 37
    • Ver Perfil
Java. Método equals para comparar Strings. CU00662B
« Respuesta #1 en: 30 de Marzo 2017, 15:47 »
Bueno, revisando encontré que me faltó parte de lo exigido en el ejercicio. Acá lo agrego.
Código: [Seleccionar]
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
import java.util.Scanner;
/**
 *
 * @author ITCO1724
 */
public class TestEntradaDeTeclado {
    public static void main (String [ ] args) {
   
     
        System.out.println ("Empezamos el programa");     
        System.out.println ("Por favor introduzca la entrada 1:");
       
       
        String cadena1="";
        Scanner x = new Scanner (System.in); //Creación de un objeto Scanner
        cadena1 = x.nextLine (); //Invocamos un método sobre un objeto Scanner
       
           

     
        System.out.println ("Por favor introduzca la entrada 2:");
       
        String cadena2="";
        Scanner y = new Scanner (System.in); //Creación de un objeto Scanner
        cadena2 = y.nextLine (); //Invocamos un método sobre un objeto Scanner
       
        // determinar cuál string tiene mayor longitud de caracteres
        String cadena="";
   
        if ( cadena1.length()>cadena2.length()){
            cadena = cadena1;
        }
        else {
            cadena = cadena2;
        }
           

       
        int i = 0;
        int j = 0;
        try {
        for (i=0;i<= cadena.length(); i++ ) {
            //while (i<cadena.length()) {
            if (cadena1.substring(i,i+1).equalsIgnoreCase(cadena2.substring(i,i+1))){
                System.out.println ("¿Letra " + (i+1) + " igual en las dos palabras? True");
               
            }
            else {
               
                System.out.println ("¿Letra " + (i+1) + " igual en las dos palabras? False");}
        }
       
       
      }
        catch (Exception e) {
     
        }
        for (j=0;(i+j)<= cadena.length(); j++ ){
            System.out.println ("¿Letra " + (i+j) + " igual en las dos palabras? La segunda entrada no tiene letra " + (i+j));
        }
    }//Cierre del main

    }  //Cierre de la clase

« Última modificación: 03 de Abril 2017, 00:18 por pedro,, »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:EJERCICIO CU00661B
« Respuesta #2 en: 03 de Abril 2017, 00:24 »
Hola Luis Fdo.

En el curso no se han explicado los bloques try catch, y este ejercicio se puede resolver con lo aprendido en el curso sin necesidad de usarlos, así que si quieres, lo ideal es que presentases una solución de acuerdo a lo estudiado en el curso.De la forma en que resuelves el ejercicio es intentando deshacerte de un error usando try catch, un error que puedes solucionar fácilmente resolviendo el ejercicio adecuadamente, try catch se debe usar cuando puedan ocurrir errores que no pudiésemos controlar de otra forma. Te dejo un enlace con una posible solución al ejercicio:

https://www.aprenderaprogramar.com/foros/index.php?topic=2089.msg10280#msg10280

Saludos. ;D
« Última modificación: 03 de Abril 2017, 00:29 por pedro,, »

david82

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 10
    • Ver Perfil
Re:Java. Método equals para comparar Strings. CU00662B
« Respuesta #3 en: 12 de Mayo 2017, 19:06 »
Hola

Tengo una duda respecto a este bloque de código:
Código: [Seleccionar]
public String getPrimeraPalabra ()  {

       //IMPORTANTE: EN JAVA LOS OBJETOS NO SE PUEDEN COMPARAR USANDO == POR ESO ESTO NO FUNCIONARÁ       

          if (entradaTeclado.substring(0,1)=="j") {

          System.out.println ("Hemos detectado una j");

          } else { System.out.println ("Mira esto:" + entradaTeclado.substring(0,1) ); } 

        /*for (int i=0; i < entradaTeclado.length() - 1; i++) {

            if (entradaTeclado.substring (i, i+1).equals(" ") ) {     //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS

                return entradaTeclado.substring(0, i+1);         }

        }*/

        return entradaTeclado;  //Caso de que no se detecte ningún espacio devolvemos lo que haya

    } //Cierre del método getPrimeraPalabra

Compila y corre sin problemas, pero jamás entra al bloque del if sin importar que la cadena solo contenga "j". Podrías aclararme por qué sucede eso? (Haciendo enfasis en que en el comentario del código dices que no funcionaría). Gracias.

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Java. Método equals para comparar Strings. CU00662B
« Respuesta #4 en: 14 de Mayo 2017, 02:00 »
Buenas.

El problema es que no se pueden comparar dos String usando "==", para ello puedes usar el método equals() o equalsIgnoreCase().
Código: [Seleccionar]
public String getPrimeraPalabra ()  {

       //IMPORTANTE: EN JAVA LOS OBJETOS NO SE PUEDEN COMPARAR USANDO == POR ESO ESTO NO FUNCIONARÁ       

          if (entradaTeclado.substring(0,1).equals("j")) {

          System.out.println ("Hemos detectado una j");

          } else { System.out.println ("Mira esto:" + entradaTeclado.substring(0,1) ); } 

        /*for (int i=0; i < entradaTeclado.length() - 1; i++) {

            if (entradaTeclado.substring (i, i+1).equals(" ") ) {     //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS

                return entradaTeclado.substring(0, i+1);         }

        }*/

        return entradaTeclado;  //Caso de que no se detecte ningún espacio devolvemos lo que haya

    } //Cierre del método getPrimeraPalabra

Saludos. ;D

david82

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 10
    • Ver Perfil
Re:Java. Método equals para comparar Strings. CU00662B
« Respuesta #5 en: 15 de Mayo 2017, 15:57 »
Bien, ya aclaraste mi duda.

Muchas gracias 8)

 

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