본문 바로가기

Algorithm/Programers - Java

[프로그래머스(Java)] 핸드폰 번호 가리기 - toCharArray() String.valueOf() toString() , 여러 replace()

 

Level. 1

 

문제

 

풀이

class Solution {
    public String solution(String phone_number) {
        String answer;
        // 주어진 문자열을 문자 어레이로 변환
        char[] ch = phone_number.toCharArray();
        for(int i=0; i<ch.length-4; i++){
            ch[i] = '*';
        }
        // 문자 어레이를 다시 문자열로 변환
        answer = String.valueOf(ch);
        return answer;
    }
}

 

String.toCharArray()

문자열(String)을 char형 배열로 바꿔준다.

반환되는 배열의 길이는 문자열의 길이와 같다.

 

String.valueOf()

Object의 값을 String으로 변환한다.

 

String.valueOf() 와 toString()

  • String.valueOf() : 대상 값이 null이면 문자열 "null"을 만들어서 반환한다.
  • toString() :  대상 값이 null이면 NullPointerException 오류를 발생시킨다. 

 


다른 풀이

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

정규식(regex)을 이용한 풀이이다.

  • . : 문자 하나를 의미
  • (?=.) : 뒷쪽의 문자 한 개를 제외하고 선택
  • {숫자} : 숫자만큼의 자리수
    >> .(?=.{4}) : 맨 뒤 4자리 숫자를 제외하고 임의의 문자 하나를 선택한다. 

 

replace() , replaceAll() , replaceFirst()

  • replace(찾을문자열, 바꿀문자열) : 변경하고자 하는 문자열을 찾아 치환한다.
  • replaceAll(정규식 또는 기존문자, 대체문자) : 문자열에서 특정 문자를 다른 문자로 전체 치환한다. 정규식을 사용하지 않으면 replace와 동일하다. 
  • replaceFirst(정규식 또는 기존문자, 대체문자) : 문자열에서 처음 찾은 문자 하나만 변경처리한다. 

 

 


https://school.programmers.co.kr/learn/courses/30/lessons/12948?language=java 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr