Не удалось сравнить строку, введенную из диалога ввода, с другой строкой в 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}"