Autor Tema: ayuda con practica 62 --CU00662B comparar letras java  (Leído 3966 veces)

isralgs

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 5
    • Ver Perfil
Hola , si alguien ha hecho esta practica agradeceria que me pusiera el codigo , ya que  no consigo hacer que me diga "la cadena 2 esta vacia ".
De hecho , agradeceria cualquier ayuda
« Última modificación: 02 de Septiembre 2014, 18:28 por Alex Rodríguez »

javi in the sky

  • Avanzado
  • ****
  • Mensajes: 393
    • Ver Perfil
Re:ayuda con practica 62 --CU00662B
« Respuesta #1 en: 13 de Mayo 2014, 14:52 »
Pon el código con lo que hayas podido hacer para tratar de corregirlo partiendo de lo que hayas hecho, saludos

isralgs

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 5
    • Ver Perfil
Re:ayuda con practica 62 --CU00662B
« Respuesta #2 en: 14 de Mayo 2014, 22:09 »
esta seria la clase main


Código: [Seleccionar]
public class TestEntradaDeTeclado {
   
    int i=0;

    public static void main (String [ ] args)
    {

        System.out.println ("Empezamos el programa");     
        System.out.println ("Por favor introduzca la entrada 1:");
        EntradaDeTeclado entrada1 = new EntradaDeTeclado();
        System.out.println ("Por favor introduzca la entrada 2:");
        EntradaDeTeclado entrada2 = new EntradaDeTeclado();
        System.out.println ("Gracias");
        int largo;
        largo=Math.max(entrada1.getLongitud(),entrada2.getLongitud());
        for (int i=0 ; i < largo ; i++)
        {
           // System.out.println ("Letra "+i+" de las dos primeras entradas iguales?"+entrada1.getPrimeraPalabra(i).equals(entrada2.getPrimeraPalabra(i)));
         System.out.println ("Letra "+i+" de las dos primeras entradas iguales?");
         
         if (entrada1.getPrimeraPalabra(i).equals(""))
                    System.out.println("La palabra 1 no tiene letra"+i);
                    else if (entrada2.getPrimeraPalabra(i).equals(""))
                    System.out.println("La palabra 2 no tiene letra"+i);
                        System.out.println (entrada1.getPrimeraPalabra(i).equals(entrada2.getPrimeraPalabra(i)));
               
               
       }
   
    } //Cierre del main
 
} //Cierre de la clase

y aqui llamaria al metodo
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

   int i=0;
    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 String getPrimeraPalabra (int i)  {
       
      // if (entradaTeclado.substring(i,i+1).equals(""))
                                                            //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS
         //    {
                 return entradaTeclado.substring(i,i+1);
         //       }
           
        //    return entradaTeclado;
     

    } //Cierre del método getPrimeraPalabra



  public int getLongitud ()  {  //Método de la clase

      return entradaTeclado.length();

   } //Cierre del método getLongitud

} //Cierre de la clase

javi in the sky

  • Avanzado
  • ****
  • Mensajes: 393
    • Ver Perfil
Re:ayuda con practica 62 --CU00662B
« Respuesta #3 en: 15 de Mayo 2014, 13:13 »
Lo que he visto es que tienes mal considerado lo que se va a comparar, es decir el enunciado del problema dice que se comparen las letras de las palabras, en cambio tú estás usando entrada1.getPrimeraPalabra(i).equals ... pero getPrimeraPalabra lo que te devuelve es una palabra cuando tú lo que necesitas es comparar letras, por tanto no te va a servir getPrimeraPalabra, tendrás que usar algo que te permite comparar letras.

Lo que te permite extraer letras es substring explicado en https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=586:estudiando-el-concepto-de-metodo-java-el-metodo-substring-de-la-clase-string-extraer-caracteres-cu00649b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

He organizado el código, falta completarlo y mejorarlo

Código: [Seleccionar]
public class TestEntradaDeTeclado {
    public static void main (String [ ] args) {
        System.out.println ("Empezamos el programa");     
        System.out.print ("Por favor introduzca la entrada 1: ");
        EntradaDeTeclado entrada1 = new EntradaDeTeclado();
        System.out.print ("Por favor introduzca la entrada 2: ");
        EntradaDeTeclado entrada2 = new EntradaDeTeclado();
        System.out.println ("Gracias");
        for (int i=0 ; i < entrada1.getLongitud(); i++) {

            if (i<entrada2.getLongitud()) { //Hay letra en las dos palabras
                System.out.println("Letra " + (i+1) +" de palabra 1 es: " +entrada1.getEntrada().substring(i, i+1)+
                " y letra " + (i+1) +" de palabra 2 es: " +entrada2.getEntrada().substring(i, i+1));
            }
            else {
                System.out.println ("La letra " + (i+1) + " de la palabra 1 es: " + entrada1.getEntrada().substring(i, i+1) + " y la segunda palabra no tiene " +
                    "letra en esta posición");
            }
        }
    } //Cierre del main
} //Cierre de la clase

 :)

 

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