Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: arcanFAC en 30 de Marzo 2015, 22:15
-
Hola, aquí les dejo este ejercicio resuelto para que me digan como les parece ??? ???
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”.
import java.util.Scanner;
public class Ejemplo{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String total, cadena, comienza;
System.out.println("Por favor ingrese una cadena por teclado");
String mensaje = sc.nextLine();
cadena = "La cadena introducida tiene";
if(mensaje.length() < 5){total = " menos de 5 caracteres";}
else if(mensaje.length() >=5 && mensaje.length() <= 15){total = " entre 5 y 15 caracteres";}
else{total = " más de 15 caracteres";}
if("a".equals(mensaje.substring(0, 1))){comienza = " y comienza por a";}
else{comienza = " y no comienza por a";}
System.out.println(cadena + total + comienza);
}
}
;) ;) ;)
-
Hola arcanFAC.
Tu ejercicio está muy bien.
Como matiz , se debe inicializar las variables que se declaran , como es el caso de las variables del tipo String total = ""; cadena = ""; y comienza= "";
Te ánimo a seguir adelante con el curso.
Un saludo.
-
Buen dia Marcos,
he seguido el código para resolver el ejercicio y cuando ingreso una cadena vacía genera el siguiente error
java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.substring(String.java:1951)
at EjemploMain1.main(EjemploMain1.java:22)
Sabes porque se presenta este error, no se da al momento de compilar sino cuando ingreso una cadena vacía
Gracias por tu ayuda
Daniel Arias
-
Hola Daniel.
Esto erro lo da Java en tiempo de ejecucion , porque al NO escribir nada, cuando el programa espera recibir un string lo da como error, esto más adelante en tratamiento de exceptions o errores sería un error a "atrapar" con la sentencia try - catch.
Y lo da porque luego con ese String que el programa espera, intenta manipularlo con el metodo substring.
Espero haberte ayudao, no obstante unas lecciones más adelante te explican porque pasa esto y como solucionarlo.
Este programa básico no está preparado para recibir un String vacio.
Un saludo.