Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado 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
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
-
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
-
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