import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
class Solution {
public String solution(String new_id) {
String answer = "";
List<String> availStr = new ArrayList<>(Arrays.asList("-", "_", "."));
String id = new_id.toLowerCase(); // 1단계
List<Character> eachList = new ArrayList<>();
for(int i=0; i<id.length(); i++) {
char c = id.charAt(i);
eachList.add(c);
}
List<String> step2 = eachList.stream().filter(each -> {
return Character.isLowerCase(each) || (Character.isDigit(each)) || availStr.contains(String.valueOf(each));
}).map(String::valueOf).collect(Collectors.toList());
for(int i=0; i< step2.size(); i++) {
if(i>0 && step2.get(i).equals(".")) { // 2번째부터고 "."이면
if(step2.get(i-1).equals(".")) {
step2.set(i-1, " ");
}
}
}
List<String> step3 = step2.stream().filter(each -> !Objects.equals(each, " ")).collect(Collectors.toList());
if(step3.get(step3.size()-1).equals(".")) step3.remove(step3.size()-1);
if(step3.size()>0 && step3.get(0).equals(".")) step3.remove(0);
if(step3.size() == 0) step3.add("a");
if(step3.size() > 15) {
while (step3.size() > 15) {
step3.remove(step3.size() - 1);
}
}
if(step3.get(step3.size()-1).equals(".")) step3.remove(step3.size()-1);
if(step3.size() < 3) {
while (step3.size() < 3) {
step3.add(step3.get(step3.size() - 1));
}
}
for(String s : step3) answer += s;
return answer;
}
}
댓글