Autor Tema: Ejercicio CU00657B comparar cadenas de caracteres con java  (Leído 3299 veces)

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
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
« Última modificación: 02 de Septiembre 2014, 18:21 por Alex Rodríguez »

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Re:Ejercicio CU00657B
« Respuesta #1 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

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio CU00657B
« Respuesta #2 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

 

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