Otros Primer dia de Java duda novato

  1. #1
    ForoParalelo: Miembro Avatar de vi0let
    Registro
    10 Jan, 14
    Mensajes
    120
    Me gusta (Dados)
    4
    Me gusta (Recibidos)
    8

    Primer dia de Java duda novato

    Pues eso tras crear mi primer "codigo" no me funciona correctamente:

    Código:
    package paquete;
    
    import javax.swing.JOptionPane;
    
    public class Project1 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		
    		String nombre=JOptionPane.showInputDialog("Introduce tu nombre");
    		
    		if(nombre=="Administrador"){
    			System.out.println("Bienvenido Administrador");
    		}else{
    			System.out.println("No eres el propietario de este Pc no eres bienvenido");
    		}
    	}
    }

    El problema es que ponga lo que ponga siempre me sale la segunda opcion "No eres el propietario de este pc no eres bienvenido". ¿Por que cuando pongo Administrador me sigue poniendo esa opción? ¿Donde esta el error? No seais duros es mi primerito dia.

  2. #2
    kawaii Avatar de kawaii
    Registro
    29 Jul, 14
    Mensajes
    9,540
    Me gusta (Dados)
    849
    Me gusta (Recibidos)
    2585
    Vale, para comparar una string, con una variable que guarda una String no tienes que usar ==, porqué estas comparando referencias.
    Puedes hacer "administrador" == "administrador" pero no tendria sentido.

    if("Administrador".equals(nombre)){

    o

    if(nombre.equals("Administrador")){

    Cuando usas == estas comparando una referencia de tipo String, "nombre" con una string "Adminsitrador"

    Tu lo que quieres es comparar es la string a al cual hace referencia nombre. No sé si te han enseñado las referencias, son como punteros en C, parecido para que me entiendas. Te lo puedo explicar mejor si quieres.
    Última edición por kawaii; 27/09/2015 a las 18:53

  3. #3
    ForoParalelo: Miembro Avatar de vi0let
    Registro
    10 Jan, 14
    Mensajes
    120
    Me gusta (Dados)
    4
    Me gusta (Recibidos)
    8
    Cita Iniciado por kawaii Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    Vale, para comparar una string, con una variable que guarda una String no tienes que usar ==, porqué estas comparando referencias.
    Puedes hacer "administrador" == "administrador" pero no tendria sentido.

    if("Administrador".equals(nombre)){

    o

    if(nombre.equals("Administrador")){

    Cuando usas == estas comparando una referencia de tipo String, "nombre" con una string "Adminsitrador"

    Tu lo que quieres es comparar es la string a al cual hace referencia nombre. No sé si te han enseñado las referencias, son como punteros en C, parecido para que me entiendas. Te lo puedo explicar mejor si quieres.
    Muchas gracias, si ese era el error ya funciona perfectamente!

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •