-
[프로그래머스] 신규 아이디 추천개발공부/코딩테스트 연습문제 2022. 1. 4. 11:47
문제 설명과 제한사항

문제 설명 
제한사항 풀이
class Solution { public String solution(String new_id) { String answer = new_id; //대문자 -> 소문자 answer = answer.toLowerCase(); //사용불가 특수문자 제거 answer = answer.replaceAll("[^a-z0-9-_.]",""); //.연속사용 제거 answer = answer.replaceAll("[.]{2,1000}","."); //처음과 마지막에 위치한 . 제거 if(answer.startsWith(".")) { answer = answer.substring(1,answer.length()); } if(answer.endsWith(".")){ answer = answer.substring(0,answer.length()-1); } //빈 문자열 if(answer.length() == 0) { answer = "a"; } //16자 이상 if(answer.length() > 15) { answer = answer.substring(0,15); if(answer.endsWith(".")){ answer = answer.substring(0,answer.length()-1); } } if(answer.length() < 3){ while(answer.length() < 3){ answer = answer + answer.substring(answer.length()-1); } } return answer; } }++
잊고 있던 키워드
toLowerCase() : 문자열(String)에서 대문자를 소문자로 치환해주는 함수
<-> toUpperCase() : 문자열(String)에서 소문자를 대문자로 치환해주는 함수
replaceAll(String a, String b) : 문자열내부에서 모든 a문자열을 b로 치환해주는 함수
-> [^a-z0-9-_.] a~z 0~9, -, _, . 을 제외(^)한 모든 문자를 나타냈다.
-> [.]{2,1000} : .의 연속사용을 막기 위해 사용 .이 2~1000개 이상 반복되면 .으로 치환했다.
startsWith(String a) : 문자열 맨 앞에 a 가 있으면 true 반환
<-> endWith(String a) : 문자열 맨 뒤에 a 가 있으면 true 반환
substring(int a, int b) : 문자열 a번째 ~b-1번째 문자열로 반환
ex) String a = "abcdef";
a.substring(1,6) -> "bcdef"
잊고 있었던 문자열 내부 함수들의 사용으로 힘들었다.
'개발공부 > 코딩테스트 연습문제' 카테고리의 다른 글
[프로그래머스] 음양 더하기 (0) 2022.01.04 [프로그래머스] 내적 (0) 2022.01.04 [프로그래머스] 없는 숫자 더하기 (0) 2022.01.04 [프로그래머스] 크레인 인형뽑기 게임 (0) 2022.01.04 [프로그래머스] 로또의 최고 순위와 최저 순위 Java (0) 2022.01.04