Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: isralgs en 13 de Mayo 2014, 00:20
-
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
-
Pon el código con lo que hayas podido hacer para tratar de corregirlo partiendo de lo que hayas hecho, saludos
-
esta seria la clase main
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
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
-
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
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
:)