Groovy - How to compare the string?

后端 未结 7 1669
醉话见心
醉话见心 2021-02-04 23:03

how to compare the string which is passed as a parameter

the following method is not working.

 String str = \"saveMe\"

 compareString(str)

 def         


        
7条回答
  •  名媛妹妹
    2021-02-04 23:35

    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
    

提交回复
热议问题