배열의 유사도 (자바)

김재현·2023년 9월 27일
0

알고리즘 풀이

목록 보기
11/90
post-thumbnail

처음 인텔리제이에 코드를 작성 할 때, 문자열 비교에
if (s1[i]==s2[j]) 라고 실행했다.

인텔리제이에서는 문제가 없었지만, 웹에서 문제를 제출하니 오류가 떴다.
answer의 값이 ++ 되지 않는 것이었다.

문자열 비교 메서드인 boolean equels를 사용하니 드디어 조건식이 성립되었다.

==와 boolean equels 메서드의 차이점에 대해 찾아봤다.

a와 b가 다른 객체를 가리키고 있지만 a.equals(b) 가 true가 나온것은,
java.lang에 속한 Object 클래스의 equals(Object object) 메소드는 obj와 this(자기자신)의 레퍼런스를 ==로 단순 비교하여 결과를 리턴하도록 만들어져 있으며, 내용에 대해서는 비교하지 않습니다.

하지만, String클래스는 두 문자열이 같은지를 비교하도록 equals() 메소드를 오버라이딩하여 가지고 있습니다.

출처: https://hongpossible.tistory.com/entry/Java%EC%9D%98-equals-%EB%A9%94%EC%86%8C%EB%93%9C

  public class coTe_11 {
      public static void main(String[] args) {
          int answer = 0;

          String[] s1 = {"com", "b", "c"};
          String[] s2 = {"com"};

          for(int i=0;i<s1.length;i++) {
              for (int j=0; j<s2.length;j++) {
                  if (s1[i]==s2[j]) {
                      answer++;
                  }
              }
          }

          System.out.println(answer);

      }
  }
profile
I live in Seoul, Korea, Handsome

0개의 댓글