为什么这些字符串比较在java中有不同的结果?

时间:2021-01-09 06:12:42

标签: java spring-boot

这会抛出 IllegalStateException,checkArgument 方法是 Google 的 com.google.common.base.Preconditions.checkArgument

checkArgument(apikey.equals("3243442-bb73-123-421f-sfsglk"), "Wrong api key.");

对比

这进入 if 块:

if (apikey.equals("3243442-bb73-123-421f-sfsglk")) {
    // do something
}

apikey 值存储在 Spring boot 配置文件中,并由 @Value("${apikey}") 检索。

我知道这不是 API 密钥的完成方式,但我需要一些快速的小项目来测试一些东西。

1 个答案:

答案 0 :(得分:1)

Spring-Boot 不会删除配置文件中的尾随空格。

如果您确定配置文件中的密钥是正确的,则应该通过检查:

checkArgument(apikey.trim().equals("3243442-bb73-123-421f-sfsglk"), "Wrong api key.");