相同的字符串不等于
Same string not equals
我有以下部分代码,其中粒度的值为块。当我比较这些值时,它总是显示 NO.
System.out.println(granularity);
System.out.println(granularity.equalsIgnoreCase("block")?"YES":"NO");
if(granularity.equalsIgnoreCase("BLOCK")){.....
这是代码的输出:
block
NO
粒度值取自 属性 文件
granularity = prop.getProperty("Granularity");
这是 属性 文件的截图:
.....Granularity = block
......
谁能解释为什么两个字符串不相等?
可能是空格打乱了比较。在开头这样做:
granularity = granularity.trim();
来自 属性 个文件的属性直接在 =
之后具有它们的值
所以这样:
Granularity = block
导致值 " block"
。将您的文件更改为:
Granularity=block
Here is the output for the code:
block
NO
如果你仔细检查你的输出,你会发现在字块后面有白色 space,所以它是 "block "
.
在@p-j-meisch 评论后编辑
您从输入中得到 " block"
。当您将它与 "block"
进行比较时,您会得到错误。
添加这一行 granularity = granularity.trim()
.
最佳做法是每次在代码中使用 trim
个字符串,尤其是当它被用作用户的输入时。
granularity.trim().equalsIgnoreCase("block")...
或将其存储在 granularity
String granularity = someInputString.trim();
我有以下部分代码,其中粒度的值为块。当我比较这些值时,它总是显示 NO.
System.out.println(granularity);
System.out.println(granularity.equalsIgnoreCase("block")?"YES":"NO");
if(granularity.equalsIgnoreCase("BLOCK")){.....
这是代码的输出:
block
NO
粒度值取自 属性 文件
granularity = prop.getProperty("Granularity");
这是 属性 文件的截图:
.....Granularity = block
......
谁能解释为什么两个字符串不相等?
可能是空格打乱了比较。在开头这样做:
granularity = granularity.trim();
来自 属性 个文件的属性直接在 =
所以这样:
Granularity = block
导致值 " block"
。将您的文件更改为:
Granularity=block
Here is the output for the code:
block NO
如果你仔细检查你的输出,你会发现在字块后面有白色 space,所以它是
在@p-j-meisch 评论后编辑"block "
.
您从输入中得到 " block"
。当您将它与 "block"
进行比较时,您会得到错误。
添加这一行 granularity = granularity.trim()
.
最佳做法是每次在代码中使用 trim
个字符串,尤其是当它被用作用户的输入时。
granularity.trim().equalsIgnoreCase("block")...
或将其存储在 granularity
String granularity = someInputString.trim();