문제: 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
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;
}
}
전화번호 길이를 구해서 뒷자리 4개를 빼고 모두 *로 바꾼 후에
마지막 4자리만 answer에 붙여준다.
조금 더 깔끔하게는 repeat도 사용 가능
class Solution {
public String solution(String phone_number) {
return "*".repeat(phone_number.length() - 4)
+ phone_number.substring(phone_number.length() - 4);
}
}
repeat() 함수는 문자열을 원하는 횟수만큼 반복해서 만들어준다
"*".repeat(5)
의 결과는
"*****"
이므로
"*".repeat(phone_number.length() - 4)
의 뜻은 전화번호 길이에서 4를 뺀 만큼 *을 만들어라
주의할 점은 Java에서는 repeat()을 쓸 때 문자 하나의 '*'가 아니라
문자열 "*"를 써야한다