개선 후 답안 제출 버전 (정규표현식 개선 활용)
/*
아이디의 길이는 3자 이상 15자 이하여야 합니다.
아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다.
단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다.
*/
class Solution {
public String solution(String new_id) {
String answer = new_id;
System.out.println("answer = " + answer);
answer = answer.toLowerCase();
System.out.println("answer = " + answer);
answer = answer.replaceAll("[^a-z0-9-._]","");
System.out.println("answer = " + answer);
answer = answer.replaceAll("[.]{2,}",".");
System.out.println("answer = " + answer);
// if (answer.startsWith(".")) { answer = answer.substring(1); }
// System.out.println("answer = " + answer);
// if (answer.endsWith(".")) { answer = answer.substring(0, answer.length()-1); }
// System.out.println("answer = " + answer);
answer = answer.replaceAll("^[.]|[.]$","");
if(answer.equalsIgnoreCase("")) answer="a";
if(answer.length()>15) answer = answer.substring(0, 15);
System.out.println("answer = " + answer);
answer = answer.replaceAll("^[.]|[.]$","");
while (answer.length()<=2){
String c = answer.substring(answer.length()-1, answer.length());
answer = answer + c;
}
System.out.println("answer = " + answer);
return answer;
}
}
개선 전 초기 답안 제출 버전
/*
아이디의 길이는 3자 이상 15자 이하여야 합니다.
아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다.
단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다.
*/
class Solution {
public String solution(String new_id) {
String answer = new_id;
//System.out.println("answer = " + answer);
answer = answer.toLowerCase();
//System.out.println("answer = " + answer);
answer = answer.replaceAll("[^a-z0-9-._]","");
//System.out.println("answer = " + answer);
answer = answer.replaceAll("[.][.]+",".");
// System.out.println("answer = " + answer);
if (answer.startsWith(".")) { answer = answer.substring(1); }
// System.out.println("answer = " + answer);
if (answer.endsWith(".")) { answer = answer.substring(0, answer.length()-1); }
//System.out.println("answer = " + answer);
if(answer.equalsIgnoreCase("")) answer="a";
if(answer.length()>15)
answer = answer.substring(0, 15);
//System.out.println("answer = " + answer);
if (answer.endsWith(".")) { answer = answer.substring(0, answer.length()-1); }
//System.out.println("answer = " + answer);
while (answer.length()<=2){
String c = answer.substring(answer.length()-1, answer.length());
answer = answer + c;
}
//System.out.println("answer = " + answer);
return answer;
}
}
댓글