1. 문제 설명
String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
2. 제한 사항
seoul은 길이 1 이상, 1000 이하인 배열입니다.
seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
"Kim"은 반드시 seoul 안에 포함되어 있습니다.
3. 입출력 예
seoul | return |
["Jane", "Kim"] | "김서방은 1에 있다" |
class Solution {
public String solution(String[] seoul) {
String answer = "";
for(int i =0; i<seoul.length; i++){
if(seoul[i].equals("Kim")){ //1
answer ="김서방은 "+i+"에 있다";
}
}
return answer;
}
}
//1
문자열 비교 : == vs equals
String 변수 생성 방법 2가지
1. 리터럴을 이용한 방식
2. new 연산자를 이용한 방식
ex)
String str1 = "apple";
String str2 = "apple";
String str3 = new String ("example");
String str4 = new String ("example");
주소값 비교(==)와 값 비교(equals)
== 연산자는 비교하고자 하는 두 개의 대상의 주소값을 비교하는데 반해
String클래스의 equals 메소드는 비교하고자 하는 두 개의 대상의 값 자체를 비교한다는 것입니다.
기본 타입의 int형, char형등은 Call by Value 형태로 기본적으로 대상에 주소값을 가지지 않는 형태로 사용됩니다.
하지만 String은 일반적인 타입이 아니라 클래스입니다. 클래스는 기본적으로 Call by Reference형태로 생성 시 주소값이 부여됩니다. 그렇기에 String타입을 선언했을때는 같은 값을 부여하더라도 서로간의 주소값이 다릅니다.
[출처]
https://coding-factory.tistory.com/536
'코딩테스트(Level 0~1)' 카테고리의 다른 글
[JAVA, Programmers] 나누어 떨어지는 숫자 배열(자바) (0) | 2022.11.21 |
---|---|
[JAVA, Programmers] 핸드폰 번호 가리기(자바) (0) | 2022.11.20 |
[JAVA, Programmers] 콜라츠 추측(자바) (0) | 2022.11.20 |
[JAVA, Programmers] 나머지가 1이 되는 수 찾기(자바) (0) | 2022.11.20 |
[JAVA, Programmers] 정수 내림차순으로 배치하기(자바) (0) | 2022.11.20 |