Las cosas que te faltan:
Recuerdo que por estos capítulos, ya se había tocado el tema de los operadores lógicos.. veo que no colocaste ninguno.. asi debería ser tu resultado mas o menos (no digo que el tuyo esta mal por cierto):
package stringjava;
import java.util.Scanner;
public class StringJAVA {
static String cadena, sia;
static int cont;
static Scanner in = new Scanner (System.in);
public static void main(String[] args) {
System.out.println ("Por favor introduzca una cadena por teclado:");
String en = "";
Scanner sc = new Scanner(System.in);
en = sc.nextLine();
String letraInicial=en.substring(0,1);
if (en.length()<5 ) System.out.print("La cadena introducida tiene menos de 5 caracteres");
else if (en.length()>= 5 && en.length()<= 15 ) System.out.print("La cadena introducida tiene entre 5 y 15 caracteres");
else System.out.print("La cadena introducida tiene mas 15 caracteres");
if(letraInicial.equalsIgnoreCase("a"))System.out.println(" y comienza por la letra a");
else System.out.println(" y no comienza por la letra a");
}
}
Tu código tenia 44 lineas, este tan solo tiene 20 lineas y funciona exactamente igual... Usaste muchos if... pero tranquilo, estamos aprendiendo!
Las llaves "{}" cuando se trata de mostrar texto por pantalla, no es necesario utilizarlas.. es obligatorio cuando se trata de asignar valores o realizar calculos y operaciones.
Como dijiste estaba bien, pude colocarlo también, pero quiero que veas este equals...
letraInicial.equalsIgnoreCase("a")
Esto ignora letras minúsculas y mayúsculas... osea... si la letra es A entonces pasara a la sentencia, sin importar que sea mayúscula o minúscula.
Espero haberle ayudado, y adelante!