Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Hquinn en 09 de Enero 2016, 15:10
-
A ver que tal este ejercicio, que había varias maneras de hacerlo y he optado por lo corto xD
import java.util.Scanner; //Importación de la clase Scanner
public class Complicaciones{
public static void main(String[]args){
System.out.print("Introduce el animal en el que te quieres convertir:");
String entradaTeclado = "";
Scanner entradaEscaner = new Scanner(System.in); //Creación de un objeto Scanner
entradaTeclado = entradaEscaner.nextLine();
System.out.println("El animal que has escogido es: " + entradaTeclado + ".");
int longitudEntrada = entradaTeclado.length();
String primeraLetra = entradaTeclado.substring(0,1);
if (longitudEntrada <5){
System.out.print("La cadena introducida tiene menos de 5 caracteres ");
}
if (longitudEntrada >=5 && longitudEntrada<=15){
System.out.print("La cadena introducida tiene entre 5 y 15 caracteres ");
}
else{
System.out.print("La cadena introducida tiene más de 15 caracteres ");
}
if (primeraLetra == "a" && primeraLetra =="A"){
System.out.println("y comienza por la letra A.");
}
else{
System.out.println("y no comienza por la letra A.");
}
}
}
-
Hola Hquinn,
¿Has probado el código?. Pruebalo poniendo por ejemplo "Gato" y veras que te da un error:
Introduce el animal en el que te quieres convertir:Gato
El animal que has escogido es: Gato.
La cadena introducida tiene menos de 5 caracteres La cadena introducida tiene más de 15 caracteres y no comienza por la letra A.
El problema lo tienes en los if que comprueban la longitud del texto. Tienes una primera comprobación para si es menor de 5 caracteres y después, tienes una segunda comprobación para si esta entre 5 y 15 o, si no se cumple esta, da por hecho que es mayor de 15.
Debes de hacerlo todo en una sola comprobación a base de if ... esle if ... else.
Y si me permites un consejo, dale a las clases nombres que sean indicativos de lo que hacen. Te resultara mucho mas fácil trabajar con ellas posteriormente.
Espero que te sirvan de ayuda mis comentarios,
Un Saludo,
-
Gracias por la corrección!
Ya está cambiado :)
import java.util.Scanner; //Importación de la clase Scanner
public class LongitudMasA{
public static void main(String[]args){
System.out.print("Introduce el animal en el que te quieres convertir:");
String entradaTeclado = "";
Scanner entradaEscaner = new Scanner(System.in); //Creación de un objeto Scanner
entradaTeclado = entradaEscaner.nextLine();
System.out.println("El animal que has escogido es: " + entradaTeclado + ".");
int longitudEntrada = entradaTeclado.length();
String primeraLetra = entradaTeclado.substring(0,1);
if (longitudEntrada <5){
System.out.print("La cadena introducida tiene menos de 5 caracteres ");
}
else if (longitudEntrada >=5 && longitudEntrada<=15){
System.out.print("La cadena introducida tiene entre 5 y 15 caracteres ");
}
else{
System.out.print("La cadena introducida tiene más de 15 caracteres ");
}
if (primeraLetra == "a" && primeraLetra =="A"){
System.out.println("y comienza por la letra A.");
}
else{
System.out.println("y no comienza por la letra A.");
}
}
}
-
Hola Hquinn,
OK. Corregido el tema de la comparación de la longitud de la palabra.
Pero si lo pruebas veras que tiene otro error. Si pones un animal que comienza con "A" te dirá que no comienza por "A". Esto es por dos motivos:
1º La comparación la haces preguntando si se cumplen las dos condiciones (&&) en ver de si se cumple una o (||) otra condición.
2º En java para comparar una cadena no se usa ==.
Uno de los métodos mas fáciles es usar equals:
if (primeraLetra.equals("a") || primeraLetra.equals("A")){
System.out.println("y comienza por la letra A.");
}
else{
System.out.println("y no comienza por la letra A.");
}
Pruebalo y veras como funciona.
Un Saludo,