Autor Tema: Pedir datos por consola (teclado) en Java. Backslash, print, \n compara CU00657B  (Leído 3154 veces)

Hquinn

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 23
    • Ver Perfil
A ver que tal este ejercicio, que había varias maneras de hacerlo y he optado por lo corto xD

Código: [Seleccionar]
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.");
        }

    }
     
}
« Última modificación: 12 de Enero 2016, 14:20 por Alex Rodríguez »

Enzo

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 82
    • Ver Perfil
Hola Hquinn,

¿Has probado el código?. Pruebalo poniendo por ejemplo "Gato" y veras que te da un error:
Citar
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,

Hquinn

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 23
    • Ver Perfil
Gracias por la corrección!

Ya está cambiado :)

Código: [Seleccionar]
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.");
        }

    }
     
}

Enzo

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 82
    • Ver Perfil
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:
Código: [Seleccionar]
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,

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".