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;
}
}
}
}
1 回答
慕妹3242003
TA贡献1824条经验 获得超6个赞
试试equals方法
这里面涉及到==与equals的区别, ==表示比较两个对象的地址值 equals 表示 比较两个对象的结果值
可以尝试运行如下代码
String a = new String("test");
String b = new String("test");
System.out.println(a.equals(b));
System.out.println(a==b);
比较结果
添加回答
举报
0/150
提交
取消