Buenas tardes.
Adjunto código con mi propuesta de solución para el ejercicio (CU00662B).
Lo he resuelto haciendo uso de dos clases y, aunque a mí me ha funcionado, seguramente hay formas más simples, e incluso más 'elegantes', de resolverlo.
Agradecería las observaciones que queráis hacerme al respecto.
import java.util.Scanner;
public class PalabraIntroducida {
private String entradaTeclado;
// Constructor:
public PalabraIntroducida () {
entradaTeclado = "";
pedirEntrada();
}
// Método que lee la entrada del teclado:
public void pedirEntrada() {
Scanner entradaEscaner = new Scanner (System.in);
entradaTeclado = entradaEscaner.nextLine();
}
// Getters:
public int getLongitud() {
return entradaTeclado.length();
}
public String getLetra (int i, int j) {
return entradaTeclado.substring (i,j);
}
}
public class CompararPalabras {
public static void main (String [] args) {
// Solicitamos la introducción de las palabras a comparar:
System.out.println ("Por favor, introduzca la palabra 1: ");
PalabraIntroducida entrada1 = new PalabraIntroducida();
System.out.println ("Por favor, introduzca la palabra 2: ");
PalabraIntroducida entrada2 = new PalabraIntroducida();
// Determinamos las longitudes de las palabras introducidas:
int longitudPalabraGrande = 0;
int longitudPalabraPequenia = 0;
String palabraMenor = "";
if (entrada1.getLongitud() > entrada2.getLongitud()) {
longitudPalabraGrande = entrada1.getLongitud();
longitudPalabraPequenia = entrada2.getLongitud();
palabraMenor = "La palabra 2 ";
} else if (entrada1.getLongitud() < entrada2.getLongitud()) {
longitudPalabraGrande = entrada2.getLongitud();
longitudPalabraPequenia = entrada1.getLongitud();
palabraMenor = "La palabra 1 ";
} else {
longitudPalabraGrande = longitudPalabraPequenia = entrada1.getLongitud();
}
// Realizamos la comparación hasta la longitud de la palabra menor:
for (int i=0; i<longitudPalabraPequenia; i++) {
boolean comparacion = (entrada1.getLetra (i, i+1).equals (entrada2.getLetra (i, i+1)));
{
System.out.println ("¿Letra " + (i+1) + " igual en las dos palabras? " + comparacion);
}
}
// Finalizamos la salida por pantalla hasta el tamaño de la palabra mayor:
for (int i=longitudPalabraPequenia+1; i<=longitudPalabraGrande; i++) {
System.out.println (palabraMenor + "no tiene letra " + i);
}
}
}
Un saludo.