Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: diabolicgs en 04 de Noviembre 2015, 13:00

Título: Java al comparar cadenas me da un resultado erróneo no funciona CU00657B
Publicado por: diabolicgs en 04 de Noviembre 2015, 13:00
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  :)
       
Título: Re:Ejercicio Java CU00657B Pedir datos por consola
Publicado por: DRANXZ88 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");
        }
Título: Re:Ejercicio Java CU00657B Pedir datos por consola
Publicado por: diabolicgs en 04 de Noviembre 2015, 15:30
Ok, ahora si va. Muchas gracias!.