[groovy] Groovy-문자열을 비교하는 방법?

매개 변수로 전달 된 문자열을 비교하는 방법

다음 방법은 작동하지 않습니다.

 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 ) {

${하고 }그들은 단지 템플릿에 대한 그루비 문자열 내에서 사용되어야한다, 당신에게 구문 분석 오류를 줄 것이다


답변

답이되어야합니다

str2.equals (str)

대소 문자를 무시하고 싶다면

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"
  }
}

이제 str을 “iNdIa”로 변경해도 여전히 작동하므로 오타를 만들 가능성이 낮아집니다.


답변

가장 짧은 방법 (문자열 비교는 대소 문자를 구분하므로 “같지 않음”으로 인쇄 됨) :

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

compareString("India")


답변

그루비에서 null == null얻는다 true. 런타임에는 무슨 일이 일어 났는지 알 수 없습니다. Java에서 ==두 참조를 비교합니다.

이것이 기본 프로그래밍에서 큰 혼란의 원인이됩니다. 런타임에 null.equals는 예외를 제공합니다. 무엇이 잘못되었는지 알 수있는 기회가 있습니다.

특히 맵에 존재하지 않는 키에서 두 값을 ==가져와 동일하게 만듭니다.


답변

문자열을 비교하려면 def 변수를 사용하십시오. 해당 유형의 비교를 위해 아래 코드를 사용하십시오.

정의 변수 이름 = null

SQL 쿼리는 약간의 결과를 제공합니다. 반환 유형 def와 함께 함수를 사용하십시오.

def functionname (def 변수 이름) {

반환 변수 이름

}

if ( “$ 변수 이름”== “true”) {

}


답변