[英]jave spring string equals return false when they seem to be the same when printing
我正在使用Java spring进行网站的eclipse项目。 但是,无论我尝试了什么,以下字符串似乎都是不同的。 如果有人可以告诉我该怎么办,那会很棒。
@RequestMapping(value = "/result", method = RequestMethod.GET)
public ModelAndView execute(@ModelAttribute("dummyForm") final DummyForm dummyForm, final Model model) {
// ...
final String str = dummyForm.getFirstName() + "_" + dummyForm.getLastName();
if(str.equals("Dummy_Smith")){
// ...
}
return mav;
}
使用此代码,当我使用dummyForm.setFirstName(“ Dummy”)和dummyForm.setLastName(“ Smith”)进行测试时:在jsp中打印“ str”将按预期显示“ Dummy_Smith”。 但是在if条件检查时,它始终返回false。 我尝试做str.compareTo(“ Dummy_Smith”),它返回-33。 如果我希望它返回true,该怎么办?
提前致谢。
我敢打赌,字符串中包含空格或不可见字符,因此在打印时看起来它们是相同的字符串,但实际上并不相同。 尝试从要比较的字符串中删去所有空格,然后查看返回的内容:
String trimmed = str.trim();
System.out.println(trimmed);
System.out.println(trimmed.compareTo("Dummy_Smith"));
compareTo
调用的true
值是如果该值等于0
(因此上面的第二个打印行)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.