Las cadenas, como cualquier instancia de una clase, no se deben comparar con == sino con el método equals
Con == se comparan las referencias de las instancias, no su contenido.
if("Pedro".equals(dato)) // es la manera más correcta de comparar sus contenidos.
Muchas gracias!!!!
Hola!!!
Soy nuevo en este mundillo de java e hice una proceso if pero siempre reconoce el valor false del IF, para simplificarme el asunto hice un temporal con el puro codigo del IF y sigue haciendo lo mismo... el valor de la variable se introduce por consola y queda algo así
import java.io.IOException;
import java.util.Scanner;
public class Temp {
public static void main(String[] args) throws IOException {
String dato = null;
Scanner nombre = new Scanner(System.in);
System.out.print("Ingrese nombre: ");
dato = nombre.nextLine();
nombre.close();
System.out.println(dato); //Salida para verificar valor en variable
if (dato == "Pedro"){
System.out.println("Es Pedro");
}else{
System.out.println("No es Pedro");
}
}
}
la salida que me da es esta:
Ingrese nombre: Pedro
Pedro // valor q toma la variable
No es Pedro
Como pueden ver la variable si carga el valor "Pedro" pero el IF no lo reconoce y ejecuta siempre la instrucción del ELSE.
Gracias de antemano por su tiempo!!
Saludos!!!