Groovy - comment comparer la chaîne?
Comment comparer la chaîne qui est 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"
}
}
Également essayé
String str = "India"
compareString(str)
def compareString(String str){
def str2 = "india"
if( str2 == str ) {
println "same"
}else{
println "not same"
}
}
6 réponses
Cette ligne:
if(str2==${str}){
Devrait être:
if( str2 == str ) {
Les ${
et }
vous donneront une erreur d'analyse, car ils ne devraient être utilisés que dans des chaînes Groovy pour la création de modèles
Si vous ne voulez 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 "Inde", cela fonctionnera toujours, donc vous réduisez les chances de faire une faute de frappe.
Le chemin le plus court (imprimera "not same" car la comparaison de chaînes est sensible à la casse):
def compareString = {
it == "india" ? "same" : "not same"
}
compareString("India")
Utilisez la variable def, lorsque vous voulez comparer une chaîne. Utilisez le code ci-dessous pour ce type de comparaison.
Nom de la variable Def = null
La requête SQL vous donne un retour. Utilisez la fonction avec le type de retour def.
Def functionname(Def variablename) {
Retourne le nom de la variable
}
If ("$nom de la variable" == "true"){
}
En Groovy, null == null
obtient un true
. Au moment de l'exécution, vous ne saurez pas ce qui s'est passé.
En Java, ==
compare deux références.
Ceci est une cause de grande confusion dans la programmation de base, Qu'il soit sûr d'utiliser equals. Au moment de l'exécution, un null.equals donnera une exception. Vous avez une chance de savoir ce qui a mal tourné.
En Particulier, vous obtenez deux valeurs de clés n'existent pas dans la carte(s), ==
les rend égales.