我正在为一个网站做一个使用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,我应该怎么做?
提前谢谢。
发布于 2016-07-26 01:29:13
我敢打赌,字符串中要么有空格,要么是看不见的字符,这样当您打印时,看起来它们是相同的字符串,但实际上它们并不相同。尝试从要比较的字符串中去掉任何空格,看看它会返回什么:
String trimmed = str.trim();
System.out.println(trimmed);
System.out.println(trimmed.compareTo("Dummy_Smith"));
来自compareTo
调用的true
值是该值是否等于0
(因此上面的第二个打印行)。
https://stackoverflow.com/questions/38579694
复制相似问题