java spring string equals return false 当它们在打印时看起来相同
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 条件检查中,它总是 returns false。
我尝试做 str.compareTo("Dummy_Smith"),它 returns -33。
想要return true 怎么办?
提前致谢。
我敢打赌,字符串中要么有空格,要么有不可见字符,因此当您打印时,它们看起来像是同一个字符串,但实际上它们并不相同。尝试 trim 从你比较的字符串中去掉任何空格,看看它是什么 returns:
String trimmed = str.trim();
System.out.println(trimmed);
System.out.println(trimmed.compareTo("Dummy_Smith"));
来自 compareTo
调用的 true
值是否等于 0
(因此上面的第二个打印行)。
我正在使用 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 条件检查中,它总是 returns false。 我尝试做 str.compareTo("Dummy_Smith"),它 returns -33。 想要return true 怎么办?
提前致谢。
我敢打赌,字符串中要么有空格,要么有不可见字符,因此当您打印时,它们看起来像是同一个字符串,但实际上它们并不相同。尝试 trim 从你比较的字符串中去掉任何空格,看看它是什么 returns:
String trimmed = str.trim();
System.out.println(trimmed);
System.out.println(trimmed.compareTo("Dummy_Smith"));
来自 compareTo
调用的 true
值是否等于 0
(因此上面的第二个打印行)。