JAVA equals and contains

누가봐도 다른 메소드다.
Who is look different methods.

equals를 사용할 때 우리는 보통
변수명.equals(“CompareValue”); 이렇게 쓰기보다는

“CompareValue”.equals(변수명); 이런 식으로 쓴다.

[변수명]에 해당 하는 값이 파라미터로 전달된 값인 경우에 그렇다.

해당 변수에 값이 null인 경우 첫번째와 같이 사용하면 NullPointerException이 발생하기 때문인데,
이 습관 때문인지
eqauls()와는 전혀 다른 contains() 메소드를 쓸때도 여지 없이
파라미터로 받아올 값이 무엇인지는 예상하지 않고 바로 두번째와 같이 사용하게 된다.

contains는 포함되어 있는가를 판별하는 메소드인데,
습관적으로 첫번째와 같이 사용할 경우 당연히 정확한 값 비교가 불가능하다.

[변수명].contains(“Republic Of Korea”);

이때 [변수명]에 해당 하는 값이 “Korea” 인 경우, 참이 나올 수 없다.
“Korea”에 “Republic Of Korea”가 포함되어 있느냐를 판별하는 조건문이기 때문이다.
그러므로 비교할 값과, 비교대상이 되는 값을 잘 판단하여 사용해야한다.

public static void main(String[] args){

   String param = "Korea";
   containsValue(param);
   
}

public static void containsValue(String param){

   if(param.contains("Republic Of Korea"){
      System.out.println("1. 포함되어 있다.");
   }else{
      System.out.println("2. 포함되어 있지 않다.");
   }

   if("Republic Of Korea".contains(param){
      System.out.println("3. 포함되어 있다.");
   }else{
      System.out.println("4. 포함되어 있지 않다.");
   }
   
   // 예상 결과
   // 1.포함되어 있다.
   // 4.포함되어 있지 않다.
}

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다