java 相同字符串比较不成功

1.如以下代码和描述,明明结果有相同的字符串,但是在if中写 == 无结果,写!= 却有结果,请问这是什么原因?HashMap实例hm中key值为大王,小王,中王,当我输入大王时,程序会输出大王,大王,小王,中王,但是却没执行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, "姓名不能重复", 
                        "Error", JOptionPane.ERROR_MESSAGE);
                break;
            }
        }
    }
}
凤凰求蛊
浏览 484回答 1
1回答

慕妹3242003

试试equals方法 这里面涉及到==与equals的区别, ==表示比较两个对象的地址值 equals 表示 比较两个对象的结果值可以尝试运行如下代码 String a = new String("test"); String b = new String("test"); System.out.println(a.equals(b)); System.out.println(a==b); 比较结果
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java