Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: luispdl en 22 de Octubre 2014, 04:17
-
La clase principal con el metodo main
public class Comparacion {
public static void main (String [] args ) {
System.out.print("Ingrese una cadena: ");
EntradaDeTeclado entrada1 = new EntradaDeTeclado();
System.out.print("Ingrese otra cadena: ");
EntradaDeTeclado entrada2 = new EntradaDeTeclado();
String cadena1= entrada1.getEntrada();
String cadena2= entrada2.getEntrada();
if (cadena1.length()>cadena2.length()) {
int j=0;
for (int i=0; i<cadena1.length();i++) {
if (j<cadena2.length()){
System.out.println("¿Letra " + (i+1)+" igual en las dos palabras? "+ cadena1.substring(i, i+1).equals(cadena2.substring(i, i+1)));
j++;
} else {
System.out.println("¿Letra " + (i+1)+" igual en las dos palabras? La palabra 2 no tiene letra "+(i+1) );
j++;
}
}
} else {
int j=0;
for (int i=0; i<cadena2.length();i++) {
if (j<cadena1.length()){
System.out.println("¿Letra " + (i+1)+" igual en las dos palabras? "+ cadena1.substring(i, i+1).equals(cadena2.substring(i, i+1)));
j++;
} else {
System.out.println("¿Letra " + (i+1)+" igual en las dos palabras? La palabra 1 no tiene letra "+(i+1) );
j++;
}
}
}
}
}
Clase del capitulo anterior para entrada por teclado
import java.util.Scanner;
public class EntradaDeTeclado {
private String entradaTeclado;
public EntradaDeTeclado() {
entradaTeclado="";
pedirEntrada();
}
public void pedirEntrada() {
Scanner entradaEscaner = new Scanner (System.in);
entradaTeclado= entradaEscaner.nextLine();
}
public String getEntrada () {
return entradaTeclado;
}
public String getPrimeraPalabra () {
for (int i=0;i<entradaTeclado.length()-1;i++) {
if (entradaTeclado.substring(i, i+1).equals(" ")) {
return entradaTeclado.substring(0, i+1);
}
}
return entradaTeclado;
}
public int getLongitud () {
return entradaTeclado.length();
}
}
-
Hola luispdl
Tu ejercicio está perfecto :D
Discrimina la igualdad o no de las letras, detecta cuando hay una palabra más larga
Uso correcto de los métodos de la clase String: equals, substring y length
Saludos y adelante.
-
Muchas Gracias toni_apr!!! :)
-
Una consulta, como llegaste a esta deduccion
if (j<cadena2.length()){
System.out.println("¿Letra " + (i+1)+" igual en las dos palabras? "+ cadena1.substring(i, i+1).equals(cadena2.substring(i, i+1)));
j++;
} else {
System.out.println("¿Letra " + (i+1)+" igual en las dos palabras? La palabra 2 no tiene letra "+(i+1) );
j++;
}
ademas de eso creo que no era necesario incluir otro contador, podias usar el "i" que usaste en el "for", al menos a mi me funciono asi.
Saludos
-
Hola jotase1507, efectivamente el uso de j parece que "sobra", es decir, tal como dices podría resolverse simplemente usando la misma variable i del for, lo cual es mejor ya que ahorra código y hace el código más legible.
Si quieres un comentario sobre tu código, pégalo para poder revisarlo.
Saludos