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() 는 다양한 형태의 변수를 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());