Hola 5378453:
Revisé tu código y en mi opinión está bien realizado. Das cuenta de entender cómo pedir datos a través de la consola.
Asimismo he de hacerte algunas indicaciones para que tengas en cuenta tendientes a mejorar el código.
Por ejemplo, en líneas como:
if(entradaTeclado.length()<5||entradaTeclado.length()==5){
bien podrías simplemente escribirlas como:
if(entradaTeclado.length()<=5){
que son más legibles a la hora de revisarlas.
Luego:
Lo que no se puede hacer es comprar Strings usando "==", por lo tanto no es correcto hacer:
if(cadena == "a")
En en tu código declaras un atributo String cadena. Lo inicializas, y luego valiéndote del método de la clase String substring(int beginIndex, int endIndex) le asignas la primera letra de la palabra ingresada por consola.
Para la comparación del atributo cadena (que solo contiene la letra inicial del atributo entradaTeclado), utilizaste el método equals(Object anObject) perteneciente a la clase String, eso está muy bien! es una de las formas.
También (ya que lo preguntabas) podrías utilizar otro de los métodos de la clase String que es: compareTo(String anotherString)
Este método devuelve un tipo int que se interpretará de la siguiente manera:
0: si el valor comparado es igual al valor que le pasamos como parámetro.
distinto de 0: si no son iguales.
De esta manera, reemplazaríamos:
if(cadena.equals("a")){
System.out.println(cadenaPrincipal + " e inicia con a");
}
else{
System.out.println(cadenaPrincipal + " y no inicia con a");
}
por:
if(cadena.compareTo("a")==0){
System.out.println(cadenaPrincipal + " e inicia con a");
}
else{
System.out.println(cadenaPrincipal + " y no inicia con a");
}