Autor Tema: Nuevo problema ejercicio entrega 57 Aprende programación Java desde cero  (Leído 3710 veces)

Libélula

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 12
    • Ver Perfil
Hola, soy yo otra vez. Ahora tengo otro problema. He modificado un poco el código para hacerlo más presentable, y todo va bien, excepto que siempre dice que la palabra no empieza con "a". Claramente el error está en el segundo if, pues no reconoce la condición de éste y se escriba la frase que se escriba siempre se cumple la condición del else.
Se supone que el método substring() devuelve un objeto String, así que yo pensaba que la condición  if (entradaTeclado.substring(0,1) == "a") sería correcta, pero parece que no es así. ¿Alguien me ayuda? Este es el código:
Código: [Seleccionar]
mport java.util.Scanner;

public class TestProgramaII{
   
   public static void main (String[] args){
       
        System.out.println("Introduce la cadena de caracteres: ");
        String entradaTeclado = "";
        Scanner entradaEscaner = new Scanner(System.in);
        entradaTeclado = entradaEscaner.nextLine();
               
        if (entradaTeclado.length() < 5) {System.out.print("\"La cadena introducida tiene menos de 5 caracteres");}
        else if (entradaTeclado.length() > 15) {System.out.print("\"La cadena introducida tiene más de 15 caracteres");}
        else System.out.print("\"La cadena introducida tiene entre 5 y 15 caracteres");
       
        if (entradaTeclado.substring(0,1) == "a") {System.out.println(" y comienza por a\"");}
        else {System.out.println(" y no comienza por a\"");}
   }
}

petizalinda

  • Sin experiencia
  • *
  • Mensajes: 40
  • Qué sabrá el chancho de aviones
    • Ver Perfil
Es raro, prueba cambiar if (entradaTeclado.substring(0,1) == "a") con

if (entradaTeclado.substring(0,1).equals("a"))

Libélula

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 12
    • Ver Perfil
Tienes toda la razón. Para comparar Strings no se utilizan los operadores lógicos, sino el método equals() o bien equalsIgnoreCase() (para obviar mayúsculas o minúsculas) de la clase String.
Muchas gracias por tu ayuda. Ahora el código hace exactamente lo que se pide.


 

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".