[프로그래머스] Lv. 1 신규 아이디 추천(Java)
by rowing0328https://school.programmers.co.kr/learn/courses/30/lessons/72410
정답 코드
class Solution {
public String solution(String newId) {
newId = newId.toLowerCase();
newId = newId.replaceAll("[^a-z0-9\\-_.]", "");
newId = newId.replaceAll("\\.+", ".");
newId = newId.replaceAll("^\\.|\\.$", "");
if (newId.isEmpty()) newId = "a";
if (newId.length() >= 16) {
newId = newId.substring(0, 15);
newId = newId.replaceAll("\\.$", "");
}
while (newId.length() < 3) {
newId += newId.charAt(newId.length() - 1);
}
return newId;
}
}
설명
- 모든 대문자를 소문자로 변환
- 허용된 문자 이외 제거
- 연속된 마침표(.)를 하나로 변경
- 문자열 앞위의 마침표 제거
- 빈 문자열일 경우 "a"로 대체
- 문자열 길이 조정 (최대 15자)
- 문자열 길이 조정 (최소 3자)
실행 결과
참고 자료 :
'🏅Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] Lv. 2 이진 변환 반복하기(Java) (0) | 2025.02.03 |
---|---|
[프로그래머스] Lv. 1 문자열 다루기 기본(Java) (0) | 2025.02.03 |
[프로그래머스] Lv. 1 숫자 문자열과 영단어(Java) (0) | 2025.02.03 |
[프로그래머스] Lv. 1 문자열 내 p와 y의 개수(Java) (0) | 2025.02.03 |
[프로그래머스] Lv. 2 문자열 압축(Java) (0) | 2025.01.20 |
블로그의 정보
코드의 여백
rowing0328