Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: toni_apr en 12 de Junio 2014, 09:16

Título: Ejercicio CU00657B comparar cadenas de caracteres con java
Publicado por: toni_apr en 12 de Junio 2014, 09:16
Hola. En este ejercicio tengo un if cuya condición siempre es false, y no se porqué
-
if (primeraLetra(entradaTeclado) == "a")
-
Ahí va el código completo
Código: [Seleccionar]
import java.util.Scanner;

public class PracticaMain
{
    public  void main(){
        System.out.println("Introducir texto");
        String entradaTeclado ="";
        Scanner entradaEscaner = new Scanner(System.in);
        entradaTeclado = entradaEscaner.nextLine();
        int largoTexto = longitudTexto(entradaTeclado);
       
        String mensaje = "";
        if (largoTexto < 5){
            mensaje = "Texto inferior a 5 caracteres.";
        } else if ( largoTexto >= 5 && largoTexto < 16 ){
            mensaje = "Texto con caracteres entre 5 y 15.";
        } else {
            mensaje = "Texto con más de 15 caracteres.";
        }
        System.out.println(mensaje);
        System.out.println(primeraLetra(entradaTeclado));
       
        if (primeraLetra(entradaTeclado) == "a"){
            System.out.println(entradaTeclado + " comienza con 'a'");
        }else{
            System.out.println(entradaTeclado + " no empieza con 'a'");
        }
        //
    }

    private static int longitudTexto(String valorTexto){
        int largo=valorTexto.length();
        return largo;
    }

    private String primeraLetra(String valorTexto){
        return valorTexto.substring(0,1);
    }
}

Podeis ayudarme, gracias
Título: Re:Ejercicio CU00657B
Publicado por: Mastermind en 12 de Junio 2014, 10:44
Hola, veo los siguientes problemas:

En vez de public  void main(){

debería ser

public static void main(String[] Args)


A su vez el método primeraLetra debes declararlo como static para que compile

private static String primeraLetra(String valorTexto){


El otro problema lo tienes aquí: if (primeraLetra(entradaTeclado) == "a")

no debe realizarse la comparación usando ==, sino usando equals:

if (primeraLetra(entradaTeclado).equals("a")){


Saludos
Título: Re:Ejercicio CU00657B
Publicado por: toni_apr en 12 de Junio 2014, 11:39
Gracias por el método .equals()
En cuanto la palabra <static> se que tendrá su importancia, pero no se cuando se pone o no.

He hecho los cambios y funciona OK
Gracias