web-dev-qa-db-fra.com

Groovy - Comment comparer la chaîne?

comment comparer la chaîne passée en paramètre

la méthode suivante ne fonctionne pas.

 String str = "saveMe"

 compareString(str)

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

aussi essayé

 String str = "India"

 compareString(str)

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

Cette ligne:

if(str2==${str}){

Devrait être:

if( str2 == str ) {

Le ${ et } vous donnera une erreur d’analyse, car ils ne doivent être utilisés que dans Groovy Strings pour la modélisation

62
tim_yates

Cela devrait être une réponse

str2.equalsIgnoreCase (str)

98
ojblass

Si vous ne souhaitez pas vérifier les majuscules ou les minuscules, vous pouvez utiliser la méthode suivante.

String str = "India" 
compareString(str) 

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

Alors maintenant, si vous changez str en "iNdIa", cela fonctionnera toujours et vous réduirez ainsi les chances que vous fassiez une faute de frappe.

5
Dieterg

Le plus court chemin (imprimera "pas pareil" car la comparaison de chaînes est sensible à la casse):

def compareString = {
   it == "india" ? "same" : "not same"
}    

compareString("India")
1
Simek