728x90
문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
- phone_number는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
phone_number | return |
"01033334444" | "*******4444" |
"027778888" | "*****8888" |
1
2
3
4
5
6
7
8
|
class Solution {
public String solution(String phone_number) {
String answer = "";
for(int i=0;i<phone_number.length()-4;i++) answer+="*";
answer += phone_number.substring(phone_number.length()-4);
return answer;
}
}
|
cs |
전화번호에서 뒤의 네글자를 제외한 수만큼 *을 출력하고 뒤에 4자리만 잘라서 붙여준다. |
1
2
3
4
5
6
|
class Solution {
public String solution(String phone_number) {
return "*".repeat(phone_number.length()-4)
+ phone_number.substring(phone_number.length()-4);
}
}
|
cs |
repeat()메서드를 이용하여 *을 반복시켰다. |
1
2
3
4
5
|
class Solution {
public String solution(String phone_number) {
return phone_number.replaceAll(".(?=.{4})", "*");
}
}
|
cs |
정규 표현식을 이용하여 뒤의 4글자를 제외한 문자를 *로 바꿔주었다. . : 임의의 문자 한 개 (?=.) : 뒷쪽에 임의의 문자 한 개를 제외하고 선택 {숫자} : 숫자 만큼의 자릿수 .(?=.{4}) : 뒤쪽에서 임의의 문자 4개를 제외한 임의의 문자 한 개 선택 |
정규 표현식 연습
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
class App {
public static void main(String[] args) {
// 뒤에서 임의의 1문자를 제외한 임의의 문자1개를 선택해 *로 치환
System.out.println("1234567890".replaceAll(".(?=.)", "*"));
// 뒤에서 임의의 2문자를 제외한 임의의 문자1개를 선택해 *로 치환
System.out.println("1234567890".replaceAll(".(?=.{2})", "*"));
// 뒤에서 임의의 3문자를 제외한 임의의 문자1개를 선택해 *로 치환
System.out.println("1234567890".replaceAll(".(?=.{3})", "*"));
// 뒤에서 임의의 4문자를 제외한 임의의 문자1개를 선택해 *로 치환
System.out.println("1234567890".replaceAll(".(?=.{4})", "*"));
// 뒤에서 임의의 4문자를 제외한 임의의 문자1개를 선택해 *로 치환
System.out.println("1234567890".replaceAll(".(?=....)", "*"));
// 뒤에서 임의의 4문자를 제외한 임의의 문자2개를 선택해 *로 치환
System.out.println("1234567890".replaceAll(".{2}(?=.{4})", "*"));
}
}
|
cs |
728x90
'프로그래머스 코딩(자바) > Level 1' 카테고리의 다른 글
Programmers Level 1 - 제일 작은 수 제거하기 (0) | 2023.03.09 |
---|---|
Programmers Level 1 - 음양 더하기 (0) | 2023.03.09 |
Programmers Level 1 - 나누어 떨어지는 숫자 배열 (0) | 2023.03.09 |
Programmers Level 1 - 서울에서 김서방 찾기 (0) | 2023.03.09 |
Programmers Level 1 - 콜라츠 추측 (0) | 2023.03.09 |