[프로그래머스]2021 KAKAO BLIND RECRUITMENT 신규 아이디 추천 JAVA
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;
}
}