Groovy – 如何比较string?
如何比较作为parameter passing的string
以下方法不起作用。
String str = "saveMe" compareString(str) def compareString(String str){ def str2 = "saveMe" if(str2==${str}){ println "same" }else{ println "not same" } }
也试过了
String str = "India" compareString(str) def compareString(String str){ def str2 = "india" if( str2 == str ) { println "same" }else{ println "not same" } }
这一行:
if(str2==${str}){
应该:
if( str2 == str ) {
${
和}
会给你一个parsing错误,因为它们只能在Groovy Strings中用于模板
这应该是一个答案
str2.equalsIgnoreCase(str)
如果你不想检查大小写,你可以使用下面的方法。
String str = "India" compareString(str) def compareString(String str){ def str2 = "india" if( str2.toUpperCase() == str.toUpperCase() ) { println "same" }else{ println "not same" } }
所以现在如果你改变为“iNdIa”,它仍然可以工作,所以你降低了你犯错的几率。
最短的方法(将打印“不一样”,因为string比较区分大小写):
def compareString = { it == "india" ? "same" : "not same" } compareString("India")
使用defvariables,当你想比较任何string。 使用下面的代码进行比较。
defvariables名称= null
SQL查询给你一些回报。 使用返回typesdef的函数
def functionname(def variablename){
返回variables名称
}
if(“$ variable name”==“true”){
}
在Groovy中, null == null
得到一个true
。 在运行时,你将不知道发生了什么。 在Java中, ==
比较两个引用。
这在基础编程中是一个大混乱的原因,是否使用平等是安全的。 在运行时,null.equals会给出一个exception。 你有机会知道出了什么问题。
尤其是,你得到两个不存在于地图上的键值, ==
使它们相等。