繁体   English   中英

同一字符串不等于

[英]Same string not equals

我在代码的以下部分中,粒度的值是块。 当我比较这些值时,它始终显示为“否”。

   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

这是代码的输出:

如果仔细检查您的输出,则会在单词block后找到空白,因此它是"block " @ pj-meisch评论后编辑
您从输入中得到" block" 当您将其与"block"进行比较时,您会得到错误的结果。

添加此行granularity = granularity.trim()

最佳做法是每次在代码中trim字符串,尤其是当它被用户输入时。

granularity.trim().equalsIgnoreCase("block")...

或以granularity存储时

String granularity = someInputString.trim();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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