Autor Tema: Empezando java desde 0, ejercicio (CU00657B).  (Leído 2969 veces)

axorz

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Empezando java desde 0, ejercicio (CU00657B).
« en: 28 de Enero 2015, 20:19 »
Hola, alguien me puede explicar por qué nunca entra en el if de si la palabra empieza por a?
Código: [Seleccionar]
import java.util.Scanner;
public class Test1 {
    public static void main(String[]args) {
        Scanner input = new Scanner(System.in);
        String s = input.nextLine();
        int longitud = s.length();
        System.out.print("La cadena introducida tiene ");
        if (longitud < 5) System.out.print("menos de 5 caracteres ");
        else if (longitud >= 5 && longitud <= 15) System.out.print("entre 5 y 15 caracteres ");
        else System.out.print("mas de 15 caracteres ");
        String c = s.substring(0,1);
        if (c == "a") System.out.print("y comienza por a\n");
        else System.out.print("y no comienza por a\n");
    }
}

Gracias y un saludo.

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Empezando java desde 0, ejercicio (CU00657B).
« Respuesta #1 en: 28 de Enero 2015, 22:49 »
Hola axorz

En Java las comparaciones en objetos de tipo String se hacen con un método  que implementa dicha clase String.
Es el método equals("cadena")

Tu línea:
if (c == "a") System.out.print("y comienza por a\n");
pasaría a ser:
if (c.equals("a")) System.out.print("y comienza por a\n");

Esto se debe a que un String no es un tipo primitivo como puede ser un int o un float que si aceptan == para hacer comparaciones, sino que es un objeto de tipo String compuesto de varios caracteres. Y para ello existe el método equals

En tu código para que la salida por pantalla sea más inteligible deberías añadir una línea antes de la de Scanner input = ... Algo como esto:
System.out.print("Introducir una cadena: ");

Sino el programa está esperando una respuesta sin haber hecho la pregunta.

Saludos

 

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