🤔 문제
🔗
신규 유저가 입력한 아이디를 나타내는 new_id가 매개변수로 주어질 때, "네오"가 설계한 7단계의 처리 과정을 거친 후의 추천 아이디를 return 하도록 solution 함수를 완성해 주세요.
제한사항
- new_id는 길이 1 이상 1,000 이하인 문자열입니다.
- new_id는 알파벳 대문자, 알파벳 소문자, 숫자, 특수문자로 구성되어 있습니다.
- new_id에 나타날 수 있는 특수문자는 -_.~!@#$%^&*()=+[{]}:?,<>/ 로 한정됩니다.
👊 풀이과정
매개변수로 아이디가 들어오면 다음 조건에 맞게 아이디를 변경해 리턴하는 메서드를 작성해야 한다.
String answer =
new_id.toLowerCase()
.replaceAll("[^a-z0-9._-]","") // 사용불가문자 제거
.replaceAll("[.]{2,}",".") // .이 2개 이상 연속되면 .로 치환
.replaceAll("^[.]|[.]$",""); // 문자열 가장자리가 .인 경우 제거
정규식을 사용하면 쉽게 풀 수 있는 문제이다.
💻 소스코드
public class 프로그래머스_2021카카오블라인드신규채용_신규아이디추천 {
public static String solution2(String new_id) {
String answer =
new_id.toLowerCase().replaceAll("[^a-z0-9._-]","")
.replaceAll("[.]{2,}",".")
.replaceAll("^[.]|[.]$","");
if(answer.length()==0) return "aaa";
while(answer.length()<3) {
answer += answer.charAt(answer.length()-1);
}
if(answer.length()>15) answer = answer.substring(0,15).replaceAll("[.]$","");
return answer;
}
}