문제 설명
문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 <= my_string의 길이 <= 100
- letter은 길이가 1인 영문자입니다.
- my_string과 letter은 알파벳 대소문자로 이루어져 있습니다.
- 대문자와 소문자를 구분합니다.
입출력 예
my_string | letter | result |
"abcdef" | "f" | "abcde" |
"BCBdbe" | "B" | "Cdbe" |
class Solution {
public String solution(String my_string, String letter) {
String answer = my_string.replaceAll(letter, "");
return answer;
}
}
한 줄로 끝내본 코드가 얼마만인지. 본 문제에서는 my_string에서 문자 하나만 제거하는 것이 아닌, 모든 문자를 제거하기를 원하고 있습니다. 따라서 replaceAll을 썼지만, replace를 써도 현재 코드에서의 결과는 같습니다. 둘의 차이는 정규식의 사용 여부입니다. replaceAll의 경우에는 정규식을 사용할 수 있습니다.
변수명.replace(CharSequence target, CharSequence replacement) 변수명.replaceAll(String regex, String replacement) |
자주 쓰는 정규식은 아래 표와 같습니다.
[정규식] | 뜻 |
[0-9] | 모든 숫자 |
[^0-9] | 모든 숫자를 제외한 문자 |
[a-z] | 영어 소문자 |
[A-Z] | 영어 대문자 |
엄밀히 따지면 제 코드는 정규식을 쓰지 않고 있으므로 틀렸다고도 볼 수 있겠네요. 원하는 단어는 모두 바꿔야겠다 싶어서 replaceAll을 썼는데, replace도 원하는 문자 전체를 바꿔준다는 사실을 늦게 깨달았습니다. 하지만 이번 기회에 적확한 쓰임새를 알게 되었으므로 썩 나쁜 수확은 아닌 것 같다고… 그런 식으로 위안 삼았습니다.
'프로그래머스 > Lv. 0(코딩테스트 입문)' 카테고리의 다른 글
[프로그래머스 코딩테스트] 양꼬치(Java) (0) | 2023.03.25 |
---|---|
[프로그래머스 코딩테스트] 각도기(Java) (0) | 2023.03.25 |
[프로그래머스 코딩테스트] 문자 반복 출력하기(Java) (0) | 2023.03.25 |
[프로그래머스 코딩테스트] 직각삼각형 출력하기(Java) (0) | 2023.03.25 |
[프로그래머스 코딩테스트] 문자열 뒤집기(Java) (0) | 2023.03.24 |