为什么这两个字符串都不匹配:.equals() OR .compareTo() OR == OR Objects.equals()?我相信它至少应该在一次比较中匹配。
Process proc1 = 'cat /home/output.txt'.execute()
Process proc2 = 'grep -o -m 1 webServiceReturn'.execute()
Process all = proc1 | proc2
def log = all.text.toString()
String svc = "webServiceReturn";
println (log)
println (svc)
//if (svc.equals(log)) {
//if (svc.compareTo(log)) {
//if(svc == log) {
if (Objects.equals((svc),(log))) {
println "MATCHED" }
else {
println "NOT MATCHED" }
所有四个比较的结果是:
webServiceReturn
webServiceReturn
NOT MATCHED
最佳答案
我能够重现您的问题,并进行了一项细微修改以修剪结果上的空白,使其能够匹配。
对 all.text 进行修剪,删除任何无关的空白。
def log = all.text.trim()
您也不需要 .toString() 调用。
关于Groovy 比较两个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35326642/