Hola, Pedro.
He corregido el código y me ha quedado de la siguiente manera:
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
public class CU00657B{
public static void main(String []args){
System.out.println("Introduzca una cadena por teclado:");
String entradaPorTeclado = "";
String msg = "La cadena tiene menos de 5 carácteres y empieza por la letra \"a\"";
Scanner entradaMetodoScanner = new Scanner(System.in); //Creación de un objeto Scanner
entradaPorTeclado = entradaMetodoScanner.nextLine();
if(entradaPorTeclado.length() < 5 && (entradaPorTeclado.substring(0,1)!= "a" || entradaPorTeclado.substring(0,1)!= "A") ){
msg = "La cadena tiene menos de 5 carácteres y NO empieza por la letra \"a\"";
}else if(5 <= entradaPorTeclado.length() && entradaPorTeclado.length()<= 15 && (entradaPorTeclado.substring(0,1)== "a" || entradaPorTeclado.substring(0,1)== "A")){
msg = "La cadena tiene más de 5 y menos de 15 carácteres y empieza por la letra \"a\"";
}else if(5 <= entradaPorTeclado.length() && entradaPorTeclado.length()<= 15 && (entradaPorTeclado.substring(0,1)!= "a" || entradaPorTeclado.substring(0,1)!= "A")){
msg = "La cadena tiene más de 5 y menos de 15 carácteres y NO empieza por la letra \"a\"";
}else if(entradaPorTeclado.length()> 15 && (entradaPorTeclado.substring(0,1)== "a" || entradaPorTeclado.substring(0,1)== "A")){
msg = "La cadena tiene más de 15 carácteres y empieza por la letra \"a\"";
}else if(entradaPorTeclado.length()>15 && (entradaPorTeclado.substring(0,1)!= "a" || entradaPorTeclado.substring(0,1)!= "A")){
msg = "La cadena tiene más de 25 carácteres y NO empieza por la letra \"a\"";
}
System.out.println(msg);
} //Cierre del método "main"
} //Cierre de la clase
Pero no sé por qué, no hace bien las comparaciones de los substring. Sólo comprueba la longitud y a base a ello me ejecuta las condicionales. Por qué?
Gracias.
PD. También he hecho esto:
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
public class EjercicioCU00657B{
public static void main(String []args){
System.out.println("Introduzca una cadena por teclado:");
String entradaPorTeclado = "";
String msg = "La cadena tiene menos de 5 carácteres y empieza por la letra \"a\"";
Scanner entradaMetodoScanner = new Scanner(System.in); //Creación de un objeto Scanner
entradaPorTeclado = entradaMetodoScanner.nextLine();
if(entradaPorTeclado.length() < 5 && entradaPorTeclado.substring(0,1).matches("a") != true ){
msg = "La cadena tiene menos de 5 carácteres y NO empieza por la letra \"a\"";
}else if(5 <= entradaPorTeclado.length() && entradaPorTeclado.length()<= 15 && entradaPorTeclado.substring(0,1).matches("a") == true){
msg = "La cadena tiene más de 5 y menos de 15 carácteres y empieza por la letra \"a\"";
}else if(5 <= entradaPorTeclado.length() && entradaPorTeclado.length()<= 15 && entradaPorTeclado.substring(0,1).matches("a") != true){
msg = "La cadena tiene más de 5 y menos de 15 carácteres y NO empieza por la letra \"a\"";
}else if(entradaPorTeclado.length()> 15 && entradaPorTeclado.substring(0,1).matches("a") == true){
msg = "La cadena tiene más de 15 carácteres y empieza por la letra \"a\"";
}else if(entradaPorTeclado.length()>15 && entradaPorTeclado.substring(0,1).matches("a") != true){
msg = "La cadena tiene más de 25 carácteres y NO empieza por la letra \"a\"";
}
System.out.println(msg);
} //Cierre del método "main"
} //Cierre de la clase
pero en este código, como comprobarás, sigo usando "matches()" aunque precedentemente le he puesto "substring()"