关于两个字符串输出一样,用equals却是false的原因

时间:2024-03-28 11:35:33

写了个登录页面判断账号密码的时候出现了如下的一个问题,相信有很多初学者也能碰到,就贴出来一起分享分享了
System.out.println(customers.getStr(“password”));
System.out.println(getPara(“ppassword”));
// System.out.println(getPara(“ppassword”).equals(customers.getStr(“password”)));
System.out.println(getPara(“ppassword”) instanceof String);
System.out.println(customers.getStr(“password”) instanceof String);
System.out.println(StrKit.equals(getPara(“ppassword”), customers.getStr(“password”)));

    **if (getPara("ppassword").equals(customers.getStr("password")))** {

信息: Started [email protected]{/,file:///C:/Users/admin/eclipse-workspace/Jfinal_user/WebContent/,AVAILABLE}
Loading complete (_)
121212
121212
true
true
false
红色部分是我判断登陆时密码是否正确的代码
上面是我用来检测字符串输出结果的,字符串相等,但用equals就是false了

网上一些由于编码之类导致的解决方案都有,我都试了也不管用,方法放在这,下面说说我自己的问题
我输出了两个数,输出了equals值,考虑了编码考虑了空格都没用,最后输出字符串长度才发现问题的

我是因为数据库的问题
关于两个字符串输出一样,用equals却是false的原因
大家可以看到数据类型都是长度可变的,一开始我设置的固定长度10,这是我后来测试一下两个数据的string长度才想到的