在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ java 相同字符串比較不成功

java 相同字符串比較不成功

1.如以下代碼和描述,明明結(jié)果有相同的字符串,但是在if中寫 == 無結(jié)果,寫!= 卻有結(jié)果,請問這是什么原因?HashMap實(shí)例hm中key值為大王,小王,中王,當(dāng)我輸入大王時,程序會輸出大王,大王,小王,中王,但是卻沒執(zhí)行if語句。
public void mouseExited(MouseEvent e)

{
    Object obj = e.getSource();
    //if (obj)
    if (obj == jtf_name)
    {
        String str = jtf_name.getText();
        System.out.println(str);
        for (String key:hm.keySet())
        {
            System.out.println(key);
            if (str == key)
            {
                System.out.println(888);
                JOptionPane.showMessageDialog(contentPane, "姓名不能重復(fù)", 
                        "Error", JOptionPane.ERROR_MESSAGE);
                break;
            }
        }
    }
}
回答
編輯回答
北城荒

試試equals方法
這里面涉及到==與equals的區(qū)別, ==表示比較兩個對象的地址值 equals 表示 比較兩個對象的結(jié)果值
可以嘗試運(yùn)行如下代碼

    String a = new String("test");
    String b = new String("test");
    System.out.println(a.equals(b));
    System.out.println(a==b);

比較結(jié)果

2017年5月11日 23:12