[프로그래머스] 핸드폰번호 가리기 (Java)

선예원·2021년 10월 8일
post-thumbnail

문제 설명

  • 전화번호가 문자열 phone_number로 주어져
  • 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴 하기

풀이

class Solution {
    public String solution(String phone_number) {

        StringBuilder answer = new StringBuilder();

        for(int i = 0; i < phone_number.length(); i++){
            if (i >= phone_number.length()-4)
                answer.append(phone_number.charAt(i));
            else
                answer.append("*");
        }
        return answer.toString();
    }
}

다른 사람의 풀이

-toCharArray()사용

class Solution {
  public String solution(String phone_number) {
     char[] ch = phone_number.toCharArray();
     for(int i = 0; i < ch.length - 4; i ++){
         ch[i] = '*';
     }
     return String.valueOf(ch);
  }
}

valueOf함수는 입력받은 인자 값을 Number객체로 리턴.

-정규표현식 사용

class Solution {
  public String solution(String phone_number) {
    return phone_number.replaceAll(".(?=.{4})", "*");
  }
}

정규표현식(Regular Expression) : 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식 언어.
. : 개행문자를 제외한 모든 단일 문자와 대응
x(?=y) : 전방탐색. y를 만족하면서 왼쪽에 x가 있는 경우.
{n} : n은 양의 정수, 정확히 n번

0개의 댓글