Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: ronal.d87 en 14 de Junio 2015, 06:48
-
Hola a todos, he aqui el desarrollo del ejercicio planteado
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”.
package ejemplo;
//importamos el paquete de la clase Scanner
import java.util.Scanner;
public class CalculaLetras {
//Constructor General
public CalculaLetras(){
}
public static void main (String [] argumentos){
int condicion = 0;
System.out.println("Inicio del programa Calcula Letras");
System.out.println("Ingresa cadena de caracteres");
String ingresoCaracteres = "";
String primera = "a";
String primerA = "A";
Scanner ingresoTeclado = new Scanner(System.in);//Lectura del teclado
ingresoCaracteres = ingresoTeclado.nextLine();//el objeto ingresoCaracteres recibe los valores
//Condicional 1 si la cadena tiene menos de 5 caracteres
if(ingresoCaracteres.length()< 5 ){
System.out.print("La cadena introducida tiene menos de 5 caracteres");
//el programa evalua si el primer caracter inicia con a o A
if( ingresoCaracteres.substring(0).startsWith(primera)
|| ingresoCaracteres.substring(0).startsWith(primerA)){
System.out.println(" y la primera letra es a o es A");
}
//Condicional 2 si la cadena tiene entre 5 y 15 caracteres
}else if(ingresoCaracteres.length()>=5 && ingresoCaracteres.length() <=15){
System.out.print("La cadena introducida tiene entre 5 y 15 caracteres");
//el programa evalua si el primer caracter inicia con a o A
if( ingresoCaracteres.substring(0).startsWith(primera)
|| ingresoCaracteres.substring(0).startsWith(primerA)){
System.out.println(" y la primera letra es a o es A");
}
//Condicional 3 si la cadena tiene mas de 15 caracteres
}else if(ingresoCaracteres.length()>15){
System.out.print("La cadena introducida tiene mas de 15 caracteres");
//el programa evalua si el primer caracter inicia con a o A
if( ingresoCaracteres.substring(0).startsWith(primera)
|| ingresoCaracteres.substring(0).startsWith(primerA)){
System.out.println(" y la primera letra es a o es A");
}
}
}
}
-
Hola Ronal:
Estuve revisando tu código y lo veo Excelente!! Destaco siempre el orden, y esta vez destaco el aprovechamiento y uso de los métodos de la clase String para resolver con elegancia el problema planteado.
Ya que ha sido muy bien resuelto, creo que podríamos darle una vuelta más de rosca y hacer la siguiente observación:
Hay una parte del código que se repite varias veces y es cuando vamos a verificar con qué letra empieza nuestra cadena. Podríamos plantear esa verificación como un nuevo método que es llamado cada vez que lo necesitemos. Podríamos incluso hacer más genérico y modular este método definiéndolo como un método con parámetros.
Fíjate cómo quedaría codificado el programa con esta modificación. Hemos ahorrado líneas de código y desaparecen dos atributos (primera y primeA).
package ejemplo;
//importamos el paquete de la clase Scanner
import java.util.Scanner;
public class CalculaLetras {
//Constructor General
public CalculaLetras(){
}
public static void main (String [] argumentos){
int condicion = 0;
System.out.println("\fInicio del programa Calcula Letras");
System.out.println("Ingresa cadena de caracteres");
String ingresoCaracteres = "";
Scanner ingresoTeclado = new Scanner(System.in);//Lectura del teclado
ingresoCaracteres = ingresoTeclado.nextLine();//el objeto ingresoCaracteres recibe los valores
//Condicional 1 si la cadena tiene menos de 5 caracteres
if(ingresoCaracteres.length()< 5 ){
System.out.print("La cadena introducida tiene menos de 5 caracteres");
//el programa evalua si el primer caracter inicia con a o A
TesterLetraInicial(ingresoCaracteres,"a","A");
//Condicional 2 si la cadena tiene entre 5 y 15 caracteres
}else if(ingresoCaracteres.length()>=5 && ingresoCaracteres.length() <=15){
System.out.print("La cadena introducida tiene entre 5 y 15 caracteres");
//el programa evalua si el primer caracter inicia con a o A
TesterLetraInicial(ingresoCaracteres,"a","A");
//Condicional 3 si la cadena tiene mas de 15 caracteres
}else if(ingresoCaracteres.length()>15){
System.out.print("La cadena introducida tiene mas de 15 caracteres");
//el programa evalua si el primer caracter inicia con a o A
TesterLetraInicial(ingresoCaracteres,"a","A");
}
}
public static void TesterLetraInicial(String palabra, String letraInicial1, String letraInicial2){
if(palabra.substring(0).startsWith(letraInicial1)){System.out.println(" y la primera letra es \"a\"");}
else if(palabra.substring(0).startsWith(letraInicial2)){System.out.println(" y la primera letra es a \"A\"");}
}
}
Revísalo y ante cualquier duda aquí estamos para ayudar.
-
Dónde está mi respuesta de ayer?
-
Hola rovala, en https://www.aprenderaprogramar.com/foros/index.php?topic=4603.0
Por favor no escribas en hilos ya abiertos.
Cuando quieras plantear una consulta a un ejercicio abre un nuevo hilo.
Lee esto por favor: https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0
Saludos