처음 인텔리제이에 코드를 작성 할 때, 문자열 비교에
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);
}
}