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。 你有机会知道出了什么问题。

尤其是,你得到两个不存在于地图上的键值, ==使它们相等。