== | 비교를 위한 연산자, 주소값을 비교한다 |
.equals() | 메소드, 내용을 비교한다 |
public class MBTI {
public static void main(String[] args) {
String mbti1 = "istp";
String mbti2 = mbti1; // 같은 주소값을 가짐
String mbti3 = new String("istp"); //다른 주소값을 가짐
System.out.println(mbti1 == mbti2); // true 같은 주소 값을 가짐
System.out.println(mbti1 == mbti3); // false 주소값이 다름
System.out.println(mbti1.equals(mbti3)); // true 내용이 같음
}
}
즉, 어떤 문자열의 내용이 같다고 해도 주소가 다르다면 연산자 '=='를 사용했을 때는 false가 나온다.
∴ 결론: 문자열 비교할 때는 그냥 .equals() 쓰자
문제 풀이)
문제 설명
두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ s1, s2의 길이 ≤ 100
- 1 ≤ s1, s2의 원소의 길이 ≤ 10
- s1과 s2의 원소는 알파벳 소문자로만 이루어져 있습니다
- s1과 s2는 각각 중복된 원소를 갖지 않습니다.
입출력 예s1s2result
["a", "b", "c"] | ["com", "b", "d", "p", "c"] | 2 |
["n", "omg"] | ["m", "dot"] | 0 |
입출력 예 설명
입출력 예 #1
- "b"와 "c"가 같으므로 2를 return합니다.
입출력 예 #2
- 같은 원소가 없으므로 0을 return합니다.
class Solution {
public int solution(String[] s1, String[] s2) {
int answer = 0;
for(int i =0; i<s1.length; i++){
for(int j = 0; j<s2.length; j++){
if(s1[i].equals(s2[j])){
answer ++;
}
}
}
return answer;
}
}
출처: 프로그래머스
'Java > java 메소드' 카테고리의 다른 글
Integer.toString() <-> Integer.parseInt() - 정수를 문자열로, 문자열을 정수로 (1) | 2022.10.07 |
---|---|
sort() - 배열 오름차순, 내림차순 정렬 (0) | 2022.10.06 |
reverse() 문자열 뒤집기 (0) | 2022.10.05 |
피자 나눠먹기 - if와 else, 삼항 연산자 (0) | 2022.10.03 |
Arrays.copyOfRange() - 배열 복사 메서드 (1) | 2022.10.03 |