Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: edioswaldo en 15 de Septiembre 2015, 04:57
-
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
-
Hola! De ninguna manera nos vamos a molestar porque se hagan comentarios y sugerencias como la que indicas aquí. Al revés, agradecemos todas las sugerencias y tratamos de tenerlas en cuenta, así que gracias por la sugerencia.
El ejercicio lo has resuelto muy bien, de forma un tanto distinta a como han hecho otras personas en los foros, pero muy bien planteado y resuelto. Como sugerencia, trata de usar nombres que describan el cometido de las variables. Por ejemplo has puesto texto=cadena.substring(0,1); pero hubiera sido más descriptivo primeraLetra=cadena.substring(0,1);
Saludos!
-
Gracias César. ;D
Lo que si hago la salvedad del caso, en los temas de más adelante se indica lo de las validaciones con valores tipo String, como iba paso a paso hasta este punto o tema, no tenia idea de como resolverlo jaja.
Y si voy a tomar más en cuenta para la próxima vez tu sugerencia con respecto a la definición de mis variables.
Saludos cordiales y Un abrazo a la distancia, mi estimado.