728x90
문제 설명입출력 예프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때,
전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
- phone_number는 길이 4 이상, 20이하인 문자열입니다.
phone_number return "01033334444" "*******4444" "027778888" "*****8888"
▶subString() : 문자열자르기
String.substring(시작지점 or 시작인덱스)
//시작부터~String의 끝까지 자르기
String.substring(시작지점,자르고싶은 위치의 끝지점 or 시작인덱스,자르고싶은 위치의 인덱스)
//시작~내가 원하는 부분까지 자르기
class Solution {
public String solution(String phone_number) {
String answer = "";
int n=phone_number.length();
for(int i=0; i<n-4;i++) {
answer+="*";
}
answer+=phone_number.substring(phone_number.length()-4,
phone_number.length());
return answer;
}
}
▶charAt()
: String으로 지정된 문자열 중 한 글자만 선택해서 char 타입으로 변환
class Solution{
public String solution(String phone_number){
String answer = "";
int len = phone_number.length();
for(int i=0; i<len; i++){
if(i<len-4){
answer+="*";
} else {
answer+= phone_number.charAt(i);
}
}
return answer;
}
}
▶StringBuilder()
: 기존의 String 데이터를 참조하여 변경가능한 문자열 만듦(문자의 삽입, 삭제가 자유로움)
-> 완전한 String이 아니기 때문에, 마지막에 toString()메소드로 변환필요!
StringBuilder 메소드
| 메소드 | 설명 |
| append() | 문자열 끝에 주어진 매개값을 추가 |
| insert(int index, ...) | 문자열 중간에(내가 지정한 인덱스 뒤에) 주어진 매개값을 추가 |
| delete(int start, int end) | 문자열의 일부분을 삭제 |
| deleteCharAt(int index) | 문자열에서 주어진 index의 문자를 삭제 |
| replace(int start, int end, String str) | 문자열의 일부분을 다른 문자열로 대치 |
| StringBuilder reverse() | 문자열의 순서를 뒤바꿈 |
| setCharAt(int index, char ch) | 문자열에서 주어진 index의 문자를 다른 문자로 대치 |
class Solution{
public String solution(String phone_number){
int len = phone_number.length();
StringBuilder sb=new StringBuilder();
for(int i=0; i<len-4;i++){
sb.append("*");
}
sb.append(phone_number.substring(len-4, len));
return sb.toString();
}
}
728x90
'코딩도전' 카테고리의 다른 글
| [Java] 배열과 정렬로 로또번호 뽑기 예제 (0) | 2022.05.14 |
|---|