Groovy   发布时间:2022-04-12  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了奇怪的Groovy / Java String比较行为大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
虑以下脚本:

def a = new HashSet()
def str1 = "str1"
def str2 = "str2"
def b = "$str1-$str2"
def c = "str1-str2"
println "b: $b"
println "c: $c"
println "b.equals(C): " + (b.equals(C))
println "b == c: " + (b == C)
println "b.compareTo(C): " + (b.compareTo(C))

a.add(b)
println "a.contains(C): " + a.contains(C)

使用Groovy 1.8和JDK 1.6.0_14运行时,其输出如下:

b: str1-str2                                                                                                               
c: str1-str2
b.equals(C): false
b == c: true
b.compareTo(C): 0
a.contains(C): false

两个字符串“b”和“c”打印相同的字符序列,但是b.equals(C)是假的.根据JDK 1.6手册,equals()函数应该返回:

为什么equals()不返回上面记录和演示的值?奇怪的是,compareTo()返回0!

@R_301_1964@

问题在 Groovy GString page上得到解答.我需要在GString上调用toString().

大佬总结

以上是大佬教程为你收集整理的奇怪的Groovy / Java String比较行为全部内容,希望文章能够帮你解决奇怪的Groovy / Java String比较行为所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。