Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Libélula en 29 de Abril 2014, 17:56
-
Hola, soy yo otra vez. Ahora tengo otro problema. He modificado un poco el código para hacerlo más presentable, y todo va bien, excepto que siempre dice que la palabra no empieza con "a". Claramente el error está en el segundo if, pues no reconoce la condición de éste y se escriba la frase que se escriba siempre se cumple la condición del else.
Se supone que el método substring() devuelve un objeto String, así que yo pensaba que la condición if (entradaTeclado.substring(0,1) == "a") sería correcta, pero parece que no es así. ¿Alguien me ayuda? Este es el código:
mport java.util.Scanner;
public class TestProgramaII{
public static void main (String[] args){
System.out.println("Introduce la cadena de caracteres: ");
String entradaTeclado = "";
Scanner entradaEscaner = new Scanner(System.in);
entradaTeclado = entradaEscaner.nextLine();
if (entradaTeclado.length() < 5) {System.out.print("\"La cadena introducida tiene menos de 5 caracteres");}
else if (entradaTeclado.length() > 15) {System.out.print("\"La cadena introducida tiene más de 15 caracteres");}
else System.out.print("\"La cadena introducida tiene entre 5 y 15 caracteres");
if (entradaTeclado.substring(0,1) == "a") {System.out.println(" y comienza por a\"");}
else {System.out.println(" y no comienza por a\"");}
}
}
-
Es raro, prueba cambiar if (entradaTeclado.substring(0,1) == "a") con
if (entradaTeclado.substring(0,1).equals("a"))
-
Tienes toda la razón. Para comparar Strings no se utilizan los operadores lógicos, sino el método equals() o bien equalsIgnoreCase() (para obviar mayúsculas o minúsculas) de la clase String.
Muchas gracias por tu ayuda. Ahora el código hace exactamente lo que se pide.
-
Aquí está explicado por qué debe usarse equals: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=628:el-metodo-equals-en-java-diferencia-entre-igualdad-e-identidad-comparar-objetos-ejemplos-cu00662b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188