繁体   English   中英

jave spring string equals在打印时看起来相同时返回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条件检查时,它始终返回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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM