핸드폰 번호 가리기

김세호·2022년 12월 18일
0

문제

내 풀이

class Solution {
    public String solution(String phone_number) {
        String answer = "";
        for(int i = 0 ; i<phone_number.length()-4;i++){
            answer += "*";
        }
        answer +=phone_number.substring(phone_number.length()-4,phone_number.length());
        //phone_number.substring(phone_number.length()-4);
        return answer;
    }
}

다른 사람 풀이

1. 정규표현식

class Solution {
  public String solution(String phone_number) {
    return phone_number.replaceAll(".(?=.{4})", "*");
    //임의의 문자 한 개 / (?=.) -> 뒷쪽에 임의의 문자 한 개를 제외하고 선택/ {숫자} -> 숫자 만큼의 자릿수
    //.(?=.{4}) ==> 뒤쪽에서 임의의 문자 4개를 제외한 임의의 문자 한 개 선택
  }
}

2.문자배열로 바꿔 일부만 수정하기

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()

valueOf() 는 다양한 형태의 변수를 String 자료형으로 바꿀 때 사용한다

		int numInt = 100;
		long numLo = 1000;
		double numDou = 100.100;
		boolean flag = true;
		char ch = 'A';
		//위와 같은 모든 타입을 문자열로 바꿀수 있다.
		//이를 가능하게 해주는 메서드가 바로 valueOf이다.
		//형변환을 실시한 이유 변경된 문자열과 그에따른 클래스가 
		//String에 속하는지 확인하기 위해 getClass를 이용해 속한 클래스를 나타내게 하였다.
		String numIntS = String.valueOf(numInt);
		System.out.println(numIntS + " / " + numIntS.getClass());	
		String numLoS = String.valueOf(numLo);
		System.out.println(numLoS + " / " + numLoS.getClass());
		String numDouS = String.valueOf(numDou);
		System.out.println(numDouS + " / " + numDouS.getClass());
		String flagS = String.valueOf(flag);
		System.out.println(flagS + " / " + flagS.getClass());
		String chS = String.valueOf(ch);
		System.out.println(chS + " / " + chS.getClass());

출처 : https://seeminglyjs.tistory.com/236

0개의 댓글