코딩도전

[Programmers] Java 핸드폰 번호 가리기 / subString, charAt, StringBuilder

ssong2ku 2022. 6. 1. 14:30
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