prgms.72410

처음에 문제를 보고 매우 간단하다고 생각했다. 말그대로 그냥 순서대로 구현만 하면 되는 문제였다. 하지만 문제는 나의 구현능력이었다.. 나의 구현능력이 문자그대로 구현을 하는 수준도 안되었던 것이다.

너무 간단하게 코드를 작성하려는 욕심이 문제의 해결을 더욱 어렵게 했다. ‘스트림을 이용하여 한줄로 작성해야지.', ‘String 메서드 체이닝을 이용해서라도 간단하게 작성해야지.' 하지만 결국 일부는 if문으로 해결하였다.

class Solution {
     public String solution(String new_id) {
        String answer = new_id
                .toLowerCase()
                .replaceAll("[^a-z0-9-_.]", "")
                .replaceAll("\\.+", ".");

        if (answer.length() > 0 && answer.charAt(0) == '.') answer = answer.substring(1);
        if (answer.length() == 0) answer = answer.concat("a");
        if (answer.length() >= 16) answer = answer.substring(0, 15);
        if (answer.charAt(answer.length() - 1) == '.') answer = answer.substring(0, answer.length() - 1);
        while (answer.length() <= 2) {
            answer += answer.charAt(answer.length() - 1);
        }
        return answer;
    }
}