Groovy 比较两个字符串

标签 groovy

为什么这两个字符串都不匹配:.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/

相关文章:

tomcat - 使用 WAR 文件在 Tomcat 服务器中部署 Grails 应用程序失败

json - 如何在 Play Framework 模板中对列表进行排序?

arrays - Groovy:从其自身的列表中删除和对象?

list - Groovy:比较列表忽略其中元素的顺序

grails - 如何从 config.groovy 中的 message.properties 读取消息

reflection - 在 Groovy 中使用 invokeMethod 动态实现接口(interface)

java - 在运行时获取属性类型

groovy - 如何在Jenkins Workflow中重复一个阶段

java - 无法在 Groovy 中连接 SQL 服务器

java - 使用 CriteriaQuery 时如何限制结果