Не удалось сравнить строку, введенную из диалога ввода, с другой строкой в ​​Groovy

Ниже мой код:

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 ответа

Первый - имя класса JOptionsPane это неправильно (это JOptionPane - без s)

ниже рабочий код.

Вы можете запустить его из заводной консоли.

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 может быть нулевым в этой точке

Попробуйте развернуть его непосредственно до строки как - "${env}"

Другие вопросы по тегам