how to compare the string which is passed as a parameter

the following method is not working.

 String str = "saveMe" compareString(str) def compareString(String str){ def str2 = "saveMe" if(str2==${str}){ println "same" }else{ println "not same" } } 

also tried

 String str = "India" compareString(str) def compareString(String str){ def str2 = "india" if( str2 == str ) { println "same" }else{ println "not same" } } 
1

7 Answers

This should be an answer

str2.equals( str )

If you want to ignore case

str2.equalsIgnoreCase( str )

5

This line:

if(str2==${str}){ 

Should be:

if( str2 == str ) { 

The ${ and } will give you a parse error, as they should only be used inside Groovy Strings for templating

3

If you don't want to check on upper or lowercases you can use the following method.

String str = "India" compareString(str) def compareString(String str){ def str2 = "india" if( str2.toUpperCase() == str.toUpperCase() ) { println "same" }else{ println "not same" } } 

So now if you change str to "iNdIa" it'll still work, so you lower the chance that you make a typo.

2

The shortest way (will print "not same" because String comparison is case sensitive):

def compareString = { it == "india" ? "same" : "not same" } compareString("India") 
String str = "saveMe" compareString(str) def compareString(String str){ def str2 = "saveMe" // using single quotes println 'single quote string class' + 'String.class'.class println str + ' == ' + str2 + " ? " + (str == str2) println ' str = ' + '$str' // interpolation not supported // using double quotes, Interpolation supported println "double quoted string with interpolation " + "GString.class $str".class println "double quoted string without interpolation " + "String.class".class println "$str equals $str2 ? " + str.equals(str2) println '$str == $str2 ? ' + "$str==$str2" println '${str == str2} ? ' + "${str==str2} ? " println '$str equalsIgnoreCase $str2 ? ' + str.equalsIgnoreCase(str2) println ''' triple single quoted Multi-line string, Interpolation not supported $str ${str2} Groovy has also an operator === that can be used for objects equality === is equivalent to o1.is(o2) ''' println ''' triple quoted string ''' println 'triple single quoted string ' + '''' string '''.class println """ triple double quoted Multi-line string, Interpolation is supported $str == ${str2} just like double quoted strings with the addition that they are multiline '\${str == str2} ? ' ${str == str2} """ println 'triple double quoted string ' + """ string """.class } 

output:

single quote string classclass java.lang.String saveMe == saveMe ? true str = $str double quoted string with interpolation class org.codehaus.groovy.runtime.GStringImpl double quoted string without interpolation class java.lang.String saveMe equals saveMe ? true $str == $str2 ? saveMe==saveMe ${str == str2} ? true ? $str equalsIgnoreCase $str2 ? true triple single quoted Multi-line string, Interpolation not supported $str ${str2} Groovy has also an operator === that can be used for objects equality === is equivalent to o1.is(o2) triple quoted string triple single quoted string class java.lang.String triple double quoted Multi-line string, Interpolation is supported saveMe == saveMe just like double quoted strings with the addition that they are multiline '${str == str2} ? ' true triple double quoted string class java.lang.String 

In Groovy, null == null gets a true. At runtime, you won't know what happened. In Java, == is comparing two references.

This is a cause of big confusion in basic programming, Whether it is safe to use equals. At runtime, a null.equals will give an exception. You've got a chance to know what went wrong.

Especially, you get two values from keys not exist in map(s), == makes them equal.

use def variable, when you want to compare any String. Use below code for that type of comparison.

def variable name = null

SQL query give you some return. Use function with return type def.

def functionname(def variablename){

return variable name

}

if ("$variable name" == "true"){

}

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy