Autor Tema: Java al comparar cadenas me da un resultado erróneo no funciona CU00657B  (Leído 2782 veces)

diabolicgs

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Buenos dias. Es mi primer post, a ver si lo hago bien. Os paso el codigo del problema para que me le echeis un vistazo cuando podais;

Código: [Seleccionar]
import java.util.Scanner;

public class OperacionCadenas {
    public static void main (String [] args){
        System.out.println ("Introduzca una cadena de caracteres, por favor");
        String cadenaIntroducida ="";
        Scanner entradaScanner = new Scanner (System.in);
        cadenaIntroducida = entradaScanner.nextLine();
        int longitudCadena = 0;
        longitudCadena = cadenaIntroducida.length();
        if (longitudCadena>15){
            System.out.println ("La cadena introducida tiene mas de 15 caracteres");}
            else {if ( longitudCadena <5){
                System.out.println ( "La cadena introducida tiene menos de 5 caracteres");
            } else System.out.println ("La cadena introducida tiene entre 5 y 15 caracteres");
        }
        String letraComienzo = "";
        letraComienzo = cadenaIntroducida.substring (0,1);
        if (letraComienzo == "a"){
            System.out.println ("La cadena comienza con a");
        }else { System.out.println ("La cadena NO comienza por a");
        }
    }
}

Le he dado mil vueltas y he probado varias cosas, incluso sacando una impresion para ver el valor que adquiere la variable letraComienzo, pero no entiendo donde esta el fallo. No consigo que letraComienzo == "a" salga true, asique el if no entra a la primera instruccion y nunca me devuelve "La cadena comienza con a"...

Muchas gracias! Haceis una gran labor de enseñanza  :)
       
« Última modificación: 05 de Noviembre 2015, 09:39 por Alex Rodríguez »

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Re:Ejercicio Java CU00657B Pedir datos por consola
« Respuesta #1 en: 04 de Noviembre 2015, 15:15 »
En java para comparar cadenas se usa equals no se usa == por eso no te funciona
seria como algo asi.

Observación: IgnoreCase es para que compare igual si es mayúscula o minúscula (daría igual que fuera de una manera u otra).

Código: [Seleccionar]
if (letraComienzo.equalsIgnoreCase("a")){
            System.out.println ("La cadena comienza con a");
        }else { System.out.println ("La cadena NO comienza por a");
        }
« Última modificación: 21 de Febrero 2016, 19:04 por Alex Rodríguez »

diabolicgs

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Re:Ejercicio Java CU00657B Pedir datos por consola
« Respuesta #2 en: 04 de Noviembre 2015, 15:30 »
Ok, ahora si va. Muchas gracias!.

 

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