请教一个java判断字符串相等的问题

是一个管理系统,从输入的账号和密码验证数据库中是否有这样一个人,并查询得到他的职位,如果是经理,则跳到另一个界面。if(e.getSource()==jCon){Syst... 是一个管理系统,从输入的账号和密码验证数据库中是否有这样一个人,并查询得到他的职位,如果是经理,则跳到另一个界面。
if(e.getSource()==jCon)
{
System.out.println("确定");
//从文本框和密码框取出员工号,密码
String u=this.jNum.getText().trim();
String p=new String(this.jPasswd.getPassword());

UserModel um=new UserModel();
String res=um.checkUser(u, p);
System.out.println(u+"职位是:"+res);

if(res.equals("经理"))
{
System.out.println("haha");
new Windows1();
}

}
输出如下:
确定
11001职位是:经理

我想问的是为什么这个if语句进不去?明明res就是经理啊
如果改成
if(!res.equals("经理"))
{
System.out.println("haha");
new Windows1();
}
就可以了。。。我无语了
展开
 我来答
老唐日常游戏vlog
2015-04-26 · TA获得超过2103个赞
知道小有建树答主
回答量:1102
采纳率:0%
帮助的人:354万
展开全部

楼主 在字符串判断的时候 最好加上 判断


 下面这样写 注意空值和 空格

      if(res!=null&&res.trim().equals("经理")){
           System.out.println("ok");
       }
善彦刑雁菡
2019-03-05 · TA获得超过3535个赞
知道大有可为答主
回答量:3051
采纳率:33%
帮助的人:419万
展开全部
你的s_warn赋值是"abc"吧?"abc"
属于字符串常量,它是存放在数据段里面的,如果还有个
s_warn1="abc",JAVA不会再在数据段里面再分配一个地址来存放“abc”,而是同样使用和s_warn一样的内存地址的“abc”,那么
s_warn1和s_warn就是的指向同一个内存地址拉,"abc"
不是没有地址,而是存的地方比较特殊罢啦。s_warn=="abc"当然是
true。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
堵寄灵kO
2015-04-26 · TA获得超过2370个赞
知道小有建树答主
回答量:588
采纳率:100%
帮助的人:465万
展开全部
可以是空格的问题吧,你检查一下,使用res之前先调用trim()方法把空格去掉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式