반응형
문제분석 할것도없이 문제 설명대로 시키는대로만 하면댄다.
단순히, 문자열다루는 문법을 얼마나 아느냐 테스트다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
class Solution {
public String solution(String new_id) {
String answer = "";
//1단계
new_id=new_id.toLowerCase();
//2단계
new_id=new_id.replaceAll("[^0-9a-z_.-]",""); //조건을 제외한목록
//3단계
new_id=new_id.replaceAll("[.]+",".");//연속된 마침표 .로 치환
//4단계
if(new_id.startsWith(".")){
new_id=new_id.substring(1);
}
if(new_id.endsWith(".")){
new_id=new_id.substring(0,new_id.length()-1);
}
//5단계
if(new_id.equals("")){
new_id="a";
}
//6단계
if(new_id.length()>=16){
new_id=new_id.substring(0,15);
}
if(new_id.endsWith(".")){
new_id=new_id.substring(0,new_id.length()-1);
}
//7단계
while(new_id.length()<3){
new_id+=new_id.charAt(new_id.length()-1);
}
answer=new_id;
return answer;
}
}
|
cs |
풀이
toLowerCase() : 모든문자 소문자 바꿔준다. (반대로 toUpperCase()가 있다)
replaceAll() : replace 와는다르게 (문자열범위 ,새로 나타낼문자) 형식으로 여러문자열을 바꾸는 함수다.
정규표현식을 사용하니 자주쓰이는건 알아두자.
정규표현식 : [^문자] = 입력한 문자들 제외한 모든문자
[문자]+ = 문자가 1개이상인건 모두 ex)[a]+ -> a, aa, aaa...
SubString() : 문자열을 자를때 사용한다. 첫번째 파라미터엔 시작값, 두번째 파라미터엔 끝값을넣어준다.
반응형
'알고리즘 > 프로그래머스 Level1' 카테고리의 다른 글
[프로그래머스,Java] Level1 : 완주하지 못한 선수 (0) | 2021.08.04 |
---|---|
[프로그래머스,Java] Level1 : 폰켓몬 (0) | 2021.08.04 |
[프로그래머스,Java] Level1 : 모의고사 (0) | 2021.08.03 |
[프로그래머스,Java] Level1 : 로또의 최고 순위와 최저 순 (0) | 2021.07.30 |
[프로그래머스,Java] Level1 : 소수 만들기 (0) | 2021.07.29 |