Buenas noches estimados, estaba resolviendo el ejercicio de java(CU00657B)
(CU00657B)
Crea una clase con un método main que pida una entrada de teclado y usando condicionales, el método length de la clase String y el método substring de la clase String, muestre un mensaje indicando:
a) Si la cadena introducida tiene menos de 5 caracteres, entre 5 y 15 caracteres o más de 15 caracteres.
b) Si la cadena introducida comienza por la letra a.
Ejemplo: se pide la entrada y el usuario introduce “vereda”. Por pantalla se debe
mostrar: “La cadena introducida tiene entre 5 y 15 caracteres y no comienza por a”.
Pero me topé con un problema al comparar la cadena con el caracter "a", digamos asi <if(textoPrimerCaracter=="a")>, no me realizaba la comparación correctamente aunque la lógica me parecia bien, tuve que emplear un método de String "equalsIgnoreCase()" para poder obtener un valor logico(true o false) de esta forma <esVocaA=texto.equalsIgnoreCase("a");> para poder saber si era la letra "a".
Tuve que investigar tanto en la API de Java como el foro, deberían en el curso editar una nota asi como se informa de los métodos length y substring, aunque si aclaran que hay que "investigar" pero hay muchos novatos que no saben nada o en mi caso que estoy recordando el lenguaje JAVA que no se puede hacer estas comparaciones de esa forma como si fuesen enteros a menos que se emplee algun método de la clase de JAVA String, afortunadamente recorde algo de otros lenguajes como c++ y python donde me dio una vez problemas con esto.
Es solo una sugerencia, espero no se vayan a molestar por esto.
A continuación mi respuesta al ejercicio, para su revisión estimados amigos.
import java.util.Scanner;//Importación del código de la clase Scanner desde la biblioteca Java
public class TestPrograma2{//Nombre de la clase
//Principal
public static void main (String []args){
System.out.println("*****Programa manipulando cadenas*****");
System.out.println("Ingrese una cadena por teclado:");
//variables locales
String cadena, texto ="";
int tamaño=0;
boolean esVocalA=false;
//*************************ingreso por teclado
Scanner objetoScanner=new Scanner(System.in);//creación de un objeto scanner
cadena=objetoScanner.nextLine();//invocamos un método sobre un objeto Scanner
texto=cadena.substring(0,1);//obtener primera letra de la cadena
esVocalA =texto.equalsIgnoreCase("a");//Método de tipo String al comparar dos cadenas indiferente si es mayuscula o minuscula, devuelve true o false
tamaño=cadena.length();//obtener el tamaño de la cadena
//********fase de validación tamaño de la cadena
if( tamaño < 5 ) {//Si tiene menos de 5 caracteres
texto="tiene menos de 5 caracteres";
}//cierre primera condición
else if ( tamaño >= 5 && tamaño <= 15 ) {//Si tiene entre 5 y 15 caracteres
texto="tiene entre 5 y 15 caracteres";
}//cierre segunda condición
else {//Si tiene mas de 15 caracteres
texto="tiene más de 15 caracteres";
}//cierre del ELSE
//********fase de validación si primera letra comienza con "a-A"
if (esVocalA) //Si es verdadero
texto+=" y comienza por A ";
else //Si es falso
texto+=" y No comienza por A ";
//Presentar respuesta por pantalla
System.out.println("La cadena introducida "+texto);
}//cierre del main
}//Cierre de la clase