프로그래머스
[Lv.0] 단계
<특정 문자 제거하기>
[문제]
문자열 my_string과 문자 letter이 매개변수로 주어집니다.
my_string에서 letter를 제거한 문자열을 return 하도록 solution 함수를 완성해 주세요.
[조건]
(1). 1 <= my_string의 길이 <= 100
(2). letter은 길이가 1인 영문자이며 my_string과 letter은 알파벳 대소문자로 이루어져 있음
(3). 대문자/소문자 구분
[내 문제 풀이]
=> 문자열 제거 시에는 해당 문자를 빼려는 개념보다는
공백으로 처리해 주는 것이 더 깔끔하다.
1) contains()를 이용해 my_string에 letter 포함 여부를 확인해 주고
포함된다면 my_string에서 letter글자를 ""처리해 주는 것으로 replace 한다.
이후 return 해서 my_string반환
🌟 contains()는 공백을 구분한다.
String a = "Good morning";
String b = "morning";
String c = " morning";
a.contains(b) = true
a.contains(c) = false
✔️📍JavaStudy로 학습한 부분 활용
2) replace() 자체가 조건 비교를 포함하고 있으므로 위의 1번처럼 if조건문을 사용하지 않아도
아래와 같이 return문에 바로 replace()를 사용해 대체해 줄 수 있다.
이렇게 하면 한 줄로 코드를 줄여줄 수 있음
[연계학습]
🌟charSequence / String의 공통점과 차이점
- 학습을 하다가 가끔 오류로 charSequnce의 형변환에 대한 것이 뜰 때가 있었는데,
charSequnce가 정확히 어떤 것인지 모르겠어서 검색해 봤다.
1) charSequence : String과 같이 문자열을 저장할 수 있는 자료형
charSequence cs = "문자열 자료형";
❗️String은 charSequence interface를 구현한 class이다.
따라서, String은 charSequence에 그대로 대입해도 사용할 수 있지만,
charSequence를 String에 대입할 때는 toString()로 변환해 대입해 줄 수 있다.
2) '+'연산자를 이용해 문자열을 더하는 기능은 String만 가능하다.
다만, String + charSequence는 또 가능하다고 한다. 🙄
❗️String + String (가능)
charSequence + charSequence (불가능)
String + charSequence (가능)
3) charSequence가 String보다 메모리 크기를 적게 사용한다.
=> 아마 기능적인 면에서 효율을 높이고 싶으면 charSequence를 사용하는 게 아닐지..?
-
🌟replace() / replaceAll() 차이점
=> replace(charSequence target, charSequence replacement)
=> replaceAll(String target, String replacement)
target : 변환하고자 하는 대상 문자열
replacement : 변환해 줄 문자열
❗️두 메서드의 가장 큰 차이점은 인자로 어떤 자료형을 받을 수 있느냐
replace는 charSequnce형을 받고
replaceAll은 String형을 받는다.
따라서 replaceAll은 정규표현식으로 인자값을 받기 때문에
특수 문자를 변경해주고 싶은 경우에는 replaceAll보다는 replace를 사용해 주는 것이 좋다.
=> replaceAll을 사용하고 싶으면 특수문자 표현 시 \\를 넣어줘야 한다.
<문자열 안에 문자열>
[문제]
문자열 str1, str2가 매개변수로 주어집니다.
str1 안에 str2가 있다면 1을 없다면 2를 return 하도록 solution 함수를 완성해 주세요.
[조건]
(1). 1 <= str1의 길이 <= 100
(2). 1 <= str2의 길이 <= 100
(3). 문자열은 숫자, 대문자, 소문자로 구성
[내 문제 풀이]
=> 조건문 실행 시 반환값이 1 or 2와 같은 상황이면 가능한 삼항연산자를 사용해
코드를 짧게 작성해 준다.
✔️조건절에는 ( 괄호 ) 처리를 해준다.
✔️삼항연산자를 쓸 때 항상 return문 안에 넣어준다.
true일 때 실행될 값이 아니라, true일때 실행될 [표현식]
false일 때 실행될 [표현식]으로 기억해 두기
댓글