Hola Luis:
Estuve analizando tu ejercicio y veo que cumple con la consigna del ejercicio. Sin embargo tenemos que revisar un punto importante.
Utilizas un bucle while cuya condición es 'true'.
Es decir que el bucle while(true) será infinito hasta que se encuentre la sentencia break.
Bueno, he de decirte que esto no conforma una buena práctica, no corresponde a un buen diseño de bucle.
Siempre trataremos de resolver el problema evitando tener que salir del bucle a través de break.
Siempre intentaremos salir del bucle while cuando deje de cumplirse la condición entre sus paréntesis.
Para este caso particular la condición de abandonar el while lo podemos relacionar con la longitud de la palabra ingresada por teclado.
import java.util.Scanner;
public class Bucle
{
public static void main(String[] args)
{
System.out.println("Ingrese un texto:");
String teclado="";
Scanner escaner=new Scanner(System.in);
teclado=escaner.nextLine();
int longitudPalabra=teclado.length();
int c=0;
while(c < longitudPalabra)
{
String letra="";
letra=teclado.substring(c,c+1);
System.out.println("Letra "+(c+1)+" :"+letra);
c=c+1;
}
}
}
Analízalo y cualquier duda lo seguimos revisando.