class Solution {
public String solution(String new_id) {
String answer = "";
answer = new_id;
answer = upperToLower(answer);
answer = change_correct_char(answer);
answer = change_period(answer);
answer = chanegFirstOrLastPeriod(answer);
answer = isEmptyAdda(answer);
answer = lengthCorrect(answer);
answer = minChar(answer);
return answer;
}
public String upperToLower(String new_id){
return new_id.toLowerCase();
}
public String change_correct_char(String new_id){
String answer = "";
for(int i = 0 ; i < new_id.length(); i++){
char ch = new_id.charAt(i);
if(Character.isDigit(ch) || Character.isAlphabetic(ch) || ch == '-'|| ch == '_' || ch == '.')
answer += ch;
}
return answer;
}
public String change_period(String new_id){
while(new_id.indexOf("..") != -1)
{
new_id = new_id.replace("..", ".");
}
return new_id;
}
public String chanegFirstOrLastPeriod(String new_id){
if(!new_id.isEmpty() && new_id.charAt(0) == '.')
new_id = new_id.substring(1);
if(!new_id.isEmpty() && new_id.charAt(new_id.length()-1)=='.')
new_id = new_id.substring(0, new_id.length()-1);
return new_id;
}
public String isEmptyAdda(String new_id){
if(new_id.isEmpty())
new_id = "a";
return new_id;
}
public String lengthCorrect(String new_id){
if(new_id.length() >= 16){
new_id = new_id.substring(0,15);
if(new_id.charAt(new_id.length()-1) == '.')
new_id = new_id.substring(0,new_id.length()-1);
}
return new_id;
}
public String minChar(String new_id){
while(new_id.length() < 3){
new_id += new_id.charAt(new_id.length()-1);
}
return new_id;
}
}
'코딩테스트' 카테고리의 다른 글
[프로그래머스] Level1 공원 산책 JAVA (1) | 2023.10.12 |
---|---|
[프로그래머스] Level1 추억 점수 JAVA (0) | 2023.10.11 |
[프로그래머스] Level1 달리기 경주 JAVA (0) | 2023.10.11 |
[프로그래머스] 2019 카카오 개발자 겨울 인턴십 - 크레인 인형뽑기 게임 JAVA (0) | 2023.09.07 |