PROGRAMMERS/KAKAO
PROGRAMMERES Level 1 2021 KAKAO BLIND RECRUITMENT 신규 아이디 추천 JAVA
c0mmedes
2022. 7. 21. 17:38
import java.util.*;
class Solution {
public String solution(String new_id) {
//1
String answer = new_id.toLowerCase();
//2
answer = answer.replaceAll("[^-_.a-z0-9]","");
//3
answer = answer.replaceAll("[.]{2,}",".");
//4
answer = answer.replaceAll("^[.]|[.]$","");
//5
if(answer.equals("")){
answer += "a";
}
//6
if(answer.length()>=16) {
answer = answer.substring(0,15);
answer = answer.replaceAll("[.]$","");
}
//7
if(answer.length()<=2){
while (answer.length() < 3) {
answer += answer.charAt(answer.length()-1);
}
}
return answer;
}
}
정규식의 중요성
.toLowerCase() -> 소문자로 바꿔줌
replaceAll("정규식","변환할 문자값")
.replaceAll("[^-_.a-z0-9]","")
^ -> 문자열의 시작을 의미, [] 내에 존재하면 NOT을 의미, 따라서 안에있는 것들 제외하고 공백으로 replace
.replaceAll("[.]{2,}",".");
{2,} -> 2회 이상
.replaceAll("^[.]|[.]$","");
^[.] -> .으로 문자열의 시작
| > or연산으로 처음이나 끝을 의미
[.]& -> .으로 끝맺음을 의미
.equals() -> == 는 주소를 비교하지만 equals()는 자체를 비교
.substring(0,15)-> 0~14까지만 사용
.substring(3) -> 0~2는 짜르고 3~부터 끝까지 사용
.replaceAll("[.]$","");
[.]$ -> 문자열의 마지막 [.]을 공백으로 replace
참조