无法将输入对话框中输入的字符串与Groovy中的其他字符串进行比较

时间:2018-12-23 21:12:51

标签: string groovy compare gstring

下面是我的代码:

def readln = javax.swing.JOptionsPane.&showInputDialog
def env = readln 'Which environment you want to test'

我输入的内容为syst

我正在比较这是我在做什么

if("$env".equalsIgnoreCase("syst")){
some code
}

还尝试了许多其他比较方式,例如

if($env.equalsIgnoreCase("syst"))
if(env.equalsUIgnoreCase("syst"))
if("${'env'}".equalsIgnoreCase("syst"))

但以上方法均无效,不满足条件。如何将声明的字符串与从对话框输入的字符串进行比较?

2 个答案:

答案 0 :(得分:1)

首先-类名JOptionsPane是错误的(它是JOptionPane-没有s

下面是工作代码。

您可以从groovy控制台运行它。

import javax.swing.JOptionPane

def readln = JOptionPane.&showInputDialog
def env = readln 'Which environment you want to test'
if(env=='syst'){
    println "EQUALS"
}
if('syst'.equalsIgnoreCase(env)){
    println "EQUALS equalsIgnoreCase 1"
}
if(env.equalsIgnoreCase('syst')){
    println "EQUALS equalsIgnoreCase 2"
}
if("${env}".equalsIgnoreCase('syst')){
    println "EQUALS equalsIgnoreCase 3"
}

所有4个比较都可以正常工作。

如果您想比较忽略大小写,最好使用'syst'.equalsIgnoreCase(env)

因为此时env可能为空

答案 1 :(得分:0)

尝试将其直接扩展为-“ $ {env}”