Hola:
El ejercicio está muy bien! Si embargo para que funcione con todas las posibilidades habría que hacer un pequeño cambio.
Este cambio te va a permitir que cuando las dos palabras tengan las misma cantidad de letras siga funcionando (actualmente no lo hace).
El cambio es reemplazar el "else if" , por "else" ¿por qué? porque cuando las dos palabras tienen las misma cantidad de letras no entra ni al "if", ni al "else if", ya que no cumple ninguna de las dos condiciones y el programa se interrumpe.
Por lo tanto, si reemplazamos el "else if" por "else", si la cantidad de letras de las palabras es la misma entrará al else y hará las asignaciones correspondientes.
He aquí la modificación:
package ejemplo;
/*
programa que compara dos cadenas de texto letra por letra
*/
import java.util.Scanner;
public class ComparaLetras {
public ComparaLetras(){
//Constructor vacio
}
public static void main(String [] Argumentos){
System.out.println("Programa que compara letras");
String captura1 = "";
Scanner escaner1 = new Scanner(System.in);
String captura2 = "";
Scanner escaner2 = new Scanner(System.in);
captura1 = escaner1.nextLine();
captura2 = escaner2.nextLine();
int cadenaMenor=0, cadenaMayor=0, posicion=0;
//Comparamos la longitud de las cadenas
if(captura1.length()<captura2.length()){
cadenaMenor = captura1.length();
posicion = 1;
cadenaMayor = captura2.length();
}else{
cadenaMenor = captura2.length();
posicion = 2;
cadenaMayor = captura1.length();
}
for(int contador = 0 ; contador < cadenaMayor; contador++){
if(contador < cadenaMenor){
System.out.println("Comparacion"+(contador+1)+" ¿igual en las dos letras? "
+captura1.substring(contador, contador+1).equals(captura2.substring(contador, contador+1)));
}else{
System.out.println("La palabra "+posicion+" no tiene letra "+(contador + 1));
}
}
}
}
Analízalo y cualquier duda estamos aquí para ayudarte.