class Solution {
public String solution(String new_id) {
//1단계
new_id=new_id.toLowerCase();
//2단계
new_id = new_id.replaceAll("[^0-9a-z-_.]","");
//3단계
new_id = new_id.replaceAll("\\.+",".");
//4단계
if(new_id.length() > 0 && new_id.charAt(0)=='.') new_id = new_id.substring(1);
if(new_id.length() > 0 && new_id.charAt(new_id.length()-1)=='.') new_id = new_id.substring(0,new_id.length()-1);
//5단계
if(new_id.length()==0) new_id+="a";
//6단계
if(new_id.length()>=16) new_id = new_id.substring(0,15);
//7단계
while(new_id.length()<3){
new_id+=new_id.substring(new_id.length()-1,new_id.length());
}
//지운 후 마지막 예외처리
if(new_id.length() > 0 && new_id.charAt(0)=='.') new_id = new_id.substring(1);
if(new_id.length() > 0 && new_id.charAt(new_id.length()-1)=='.') new_id = new_id.substring(0,new_id.length()-1);
return new_id;
}
}
정규식을 이용해 특정 문자와 숫자, 특수문자들을 제외해 지우는 것이 정규식을 이용하니 무난한 과정이었다.
그리고 15글자만 남겼을때 마지막에 .이 오는 상황이 특수한 예외여서 그것을 잘 처리해주니 무난한 문항이 되었다.
'Coding Test > JAVA 코딩테스트 풀이정리(프로그래머스)' 카테고리의 다른 글
프로그래머스 스쿨 Lv.1 - 덧칠하기 (0) | 2023.12.19 |
---|---|
프로그래머스 스쿨 Lv.1 - 신고결과받기(2022 KAKAO BLIND RECRUITMENT) // 시간초과 오류발생 (0) | 2023.12.15 |
프로그래머스 스쿨 Lv.1 - 성격 유형 검사하기(2022 KAKAO TECH INTERNSHIP) (0) | 2023.12.14 |
프로그래머스 스쿨 Lv.1 - 바탕화면 정리 (0) | 2023.12.14 |
프로그래머스 스쿨 Lv.1 - 소수만들기 (0) | 2023.12.13 |