티스토리 뷰
메서드 하나하나 외우기 어려워서 기록 다시 시작한다.
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
- phone_number는 길이 4 이상, 20이하인 문자열입니다.
"01033334444" | "*******4444" |
"027778888" | "*****8888" |
내 풀이
private static String Solution(String num){
// 내가 푼 방법
StringBuilder sb = new StringBuilder();
int len = num.length();
for(int i=0; i<len; i++){
if(i >= len-4){
sb.append(num.charAt(i));
} else{
sb.append("*");
}
}
return sb.toString();
}
방법1 : 정규식 사용하기
.은 하나의 문자를 의미하고 ?=.{4} 4자리 문자 외 앞에 있는 모든 문자를 *로 변환한다.
return num.replaceAll(".(?=.{4})", "*");
방법2 : String -> char -> String 형식 변화하기
이때 ch.toString()과 String.valueOf(ch)의 차이가 무엇인지 궁금했다. 결과적으로 String 타입이 되는 것이 아닌가 생각했다. 결과적으로 ch.toString() ;하면 원하는 값이 나오지 않는다.
왜냐하면 String.valueOf(ch);은 char인 ch를 String 형식으로 바꾸지만, ch.toString()은 Character 형식으로 호출하기 때문이다. ch가 기본형이라면 Character형식으로 박싱되어 toString()메서드가 호출된다.
그러므로 ch.toString()을 실행하면 char -> Character -> String으로 타입이 변환되는 것이다.
char[] ch = num.toCharArray();
for(int i=0; i<ch.length-4; i++){
ch[i] = '*';
}
return String.valueOf(ch);
//return ch.toString();
방법3 : subString() 사용하기
subString(index);는 index부터 끝까지 출력한다.
subString(3, 5); 처럼 코드를 작성해도 된다. index 3부터 5전까지 문자가 출력된다.
String answer = "";
for(int i=0; i< num.length()-4; i++)
answer += "*";
answer += num.substring(num.length()-4);
return answer;
'백준&LeetCode' 카테고리의 다른 글
[프로그래머스] 수박수박수박수박수박수? (0) | 2025.03.06 |
---|---|
[프로그래머스] 둘만의 암호 (0) | 2025.03.02 |
[LeetCode] 58. Length of Last Word (Day3) (1) | 2024.01.10 |
[LeetCode] 35. Search Insert Position (Day3) (0) | 2024.01.10 |
[LeetCode] 13. Roman to Integer (Day2) (0) | 2024.01.09 |
- Total
- Today
- Yesterday
- streamlistener
- 사람수세기
- gradleload오류
- 오븐시계
- database연결
- baekjoon
- yolov8
- 파이썬
- JAVA오류해결
- Kkma
- randrange
- 백준
- 다인승
- 터틀그래픽 명령어
- 10828번
- konlpy
- tweepy
- 사람검출
- YOLO
- randint
- springboot
- Turtle Graphic
- python공부
- 터틀그래픽
- UnsupportedClassVersionError
- 터틀그래픽예제
- 문제풀이
- SPRING오류해결
- 다인승탑승
- 에러발생
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |