Hola Rubens:
Tu ejercicio funciona correctamente cumpliéndose la consigna planteada. Haces buen uso del bucle while, lo has entendido bien!
Igualmente para avanzar un poco más, he de hacerte algunas observaciones para optimizar el código.
Fíjate en lo siguiente:
Podemos optimizar el código prescindiendo del atributo contador y valernos únicamente del atributo int i.
De esta manera tu código modificado quedaría:
import java.util.Scanner;
public class SepararWhile{
public static void main(String [ ] arg){
System.out.println("Por favor, introduzca una palabra para deletrearla");
String palabra = "";
Scanner cadenascan = new Scanner(System.in);
palabra = cadenascan.nextLine();
int i = 0;
while (i < palabra.length()){
System.out.println("Letra " + (i+1) + " = " + palabra.substring(i,i+1));
i = i +1;
}
}
}
Fíjate también que se ha cambiado tu anterior línea:
System.out.println("Letra " + (i+1) + " = " + palabra.substring(0+i,1+i));
por:
System.out.println("Letra " + (i+1) + " = " + palabra.substring(i, i+1));
que no altera en nada la funcionalidad, pero se vé mejor, es más entendible.
Compílalo, analízalo, y si surge alguna duda acá estamos para ayudarte.