java作业求改错
答案:1 悬赏:0 手机版
解决时间 2021-11-11 14:15
- 提问者网友:感性作祟
- 2021-11-11 09:21
java作业求改错
最佳答案
- 五星知识达人网友:污到你湿
- 2021-11-11 10:11
修改函数如下,修改处见注释。错在判断两个字符串是否相等的问题,不能直接用等号。字符串也是对象,比如Object a,Object b,用等号是比较两个变量(a,b)的值,它们的值是引用的两个对象的地址,两个地址当然不一样,就不可能==。如果是比较基本数据类型,比如int,float,char等等就不存在这个问题,因为它们的值就是它们自己。
而比较对象的时候一般是通过覆写Object类的equals方法来实现(给外部调用equals方法)。
String类有两个equals方法,我代码里面用的是equals,区别大小写。而equalsIgnoreCase是不区别大小写。
public void b1ActionPerformed(ActionEvent evt)
{
if (jcb.getSelectedIndex() == 0)
{
if (t1.getText() == null)
{
JOptionPane.showMessageDialog(null, "用户名不可为空!");
}
else if (t2.getText() == null)
{
JOptionPane.showMessageDialog(null, "密码不可为空!");
}
//t1.getText() == "s"这是不可能的,两个对象不能通过等号来判断,t2同理
else if ("s".equals(t1.getText()) && "s".equals(t2.getText()))
{
JOptionPane.showMessageDialog(null, "学生用户登录成功");
}
else
{
JOptionPane.showMessageDialog(null, "用户名不存在或者密码不正确!");
}
}
if (jcb.getSelectedIndex() == 1)
{
if (t1.getText() == null)
{
JOptionPane.showMessageDialog(null, "用户名不可为空!");
}
else if (t2.getText() == null)
{
JOptionPane.showMessageDialog(null, "密码不可为空!");
}
//t1.getText() == "s"这是不可能的,两个对象不能通过等号来判断,t2同理
else if ("t".equals(t1.getText()) && "s".equals(t2.getText()))
{
JOptionPane.showMessageDialog(null, "教师用户登录成功");
}
else
{
JOptionPane.showMessageDialog(null, "用户名不存在或者密码不正确!");
}
}
}
而比较对象的时候一般是通过覆写Object类的equals方法来实现(给外部调用equals方法)。
String类有两个equals方法,我代码里面用的是equals,区别大小写。而equalsIgnoreCase是不区别大小写。
public void b1ActionPerformed(ActionEvent evt)
{
if (jcb.getSelectedIndex() == 0)
{
if (t1.getText() == null)
{
JOptionPane.showMessageDialog(null, "用户名不可为空!");
}
else if (t2.getText() == null)
{
JOptionPane.showMessageDialog(null, "密码不可为空!");
}
//t1.getText() == "s"这是不可能的,两个对象不能通过等号来判断,t2同理
else if ("s".equals(t1.getText()) && "s".equals(t2.getText()))
{
JOptionPane.showMessageDialog(null, "学生用户登录成功");
}
else
{
JOptionPane.showMessageDialog(null, "用户名不存在或者密码不正确!");
}
}
if (jcb.getSelectedIndex() == 1)
{
if (t1.getText() == null)
{
JOptionPane.showMessageDialog(null, "用户名不可为空!");
}
else if (t2.getText() == null)
{
JOptionPane.showMessageDialog(null, "密码不可为空!");
}
//t1.getText() == "s"这是不可能的,两个对象不能通过等号来判断,t2同理
else if ("t".equals(t1.getText()) && "s".equals(t2.getText()))
{
JOptionPane.showMessageDialog(null, "教师用户登录成功");
}
else
{
JOptionPane.showMessageDialog(null, "用户名不存在或者密码不正确!");
}
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯