✔️문제 링크
import java.util.*;
class Solution {
public String solution(String new_id) {
String answer = new_id.toLowerCase();//1단계
//정규표현식 사용
answer = answer.replaceAll("[^-_.a-z0-9]", ""); //2단계
answer = answer.replaceAll("[.]{2,}", "."); //3단계
answer = answer.replaceAll("^[.]|[.]$", ""); //4단계
if(answer.equals("")){
answer += "a";
}//5단계
if(answer.length() >= 16){
answer = answer.substring(0, 15);
//정규 표현식 사용
answer = answer.replaceAll("[.]$", "");
}//6단계
if(answer.length() <= 2){
while(answer.length() < 3){
answer += answer.charAt(answer.length() - 1);
}
}//7단계
return answer;
}
}
소문자로 변경해주는 함수
^ : 문자열 시작
$ : 문자열 종료
| : OR 연산
, : 이상, 이하 표현
[] : 문자의 집합이나 범위 , ^가 존재하면 not을 의미
{} : 횟수 또는 범위
2단계
new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다.
[^-_.a-z0-9]
3단계
new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다.
[.]{2,}
4단계
new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다.
^[.]|[.]$
6단계
만약 제거 후 마침표(.)가 new_id의 끝에 위치한다면 끝에 위치한 마침표(.) 문자를 제거합니다.
[.]$