반응형
1. 인증사진(2023-11-19)

2. 문제
문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
phone_number는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
phone_number return
"01033334444" "*******4444"
"027778888" "*****8888"
3. 답
1. String 자료형을 마스킹하는 문제
2. replaceAll 메서드와 정규식을 이용했다.
3. 전방탐색 어설션(positive lookahead assertion)으로 4개의 문자를 추출하고, replaceAll 메서드로 4개의 문자를 *로 대체한다.
class Solution {
public String solution(String phone_number) {
String answer = phone_number.replaceAll(".(?=.{4})", "*");
return answer;
}
}
4. 추가공부
- 전방탐색 어설션(positive lookahead assertion)이란?
- String 클래스의 메서드인 replaceAll를 이용할 때 주어진 문자열에서 정규 표현식 패턴에 일치하는 부분을 찾아서 해당 부분을 다른 문자열로 대체한다.
- 기본적인 구조는 (?=...) 인데, ...에 패턴을 넣으면 된다.
- .를 맨앞에 두면 어떤 문자든 일치한다는 뜻이고, 마지막 네 자리를 제외한 나머지 부분을 별표로 대체하게 된다.
반응형
'DEV' 카테고리의 다른 글
[javaStudy] 가운데 글자 가져오기 (0) | 2023.12.10 |
---|---|
[javaStudy] 문자열 내 p와 y의 개수 (1) | 2023.12.03 |
[Python] if구문 실습 3개 (0) | 2022.01.29 |
[Python] 파이썬 거북이 소환 2 (0) | 2022.01.28 |
[Python] 리스트 (0) | 2022.01.27 |