我有下面的代码部分,其中粒度值是块的。当我比较这些值时,它总是显示“否”。
System.out.println(granularity);
System.out.println(granularity.equalsIgnoreCase("block")?"YES":"NO");
if(granularity.equalsIgnoreCase("BLOCK")){.....下面是代码的输出:
block
NO粒度值从属性文件中提取为
granularity = prop.getProperty("Granularity");下面是属性文件的快照:
.....Granularity = block
......有人能解释一下为什么这两个字符串不相等吗?
发布于 2017-04-18 16:18:56
有可能是空白干扰了比较。一开始就这样做:
granularity = granularity.trim();发布于 2017-04-18 16:20:37
属性文件中的属性的值直接位于=之后。
所以这个:
Granularity = block导致值" block"。将文件更改为:
Granularity=block发布于 2017-04-18 16:37:35
这是每次在代码中使用trim字符串的最佳实践,特别是当它作为用户输入时。
granularity.trim().equalsIgnoreCase("block")...或者将它存储在granularity中
String granularity = someInputString.trim();https://stackoverflow.com/questions/43477302
复制相似问题