Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 회사 네트워크
- Android
- 역캡슐화
- 약과팅
- 전기신호
- xml 화면
- 모두의 네트워크
- git 충돌
- kakaomap
- xml화면 검은색
- 카카오맵 api
- network
- clone vs pull
- 성공했으면 꿀팁! 이런거라도 적는데 그게 아니니 뭐 적을게 없네요
- 가정 네트워크
- android xml 화면 검은색
- git
- 약과팅 경험!
- 장인한과
- TCP/IP 모델
- 네트워크 기초
- KakaoMap API
- 안드로이드 xml 화면 오류
- git #
- 장인약과
- Git 기초
- FCS
- android xml 오류
- 코닥 미니샷2
- OSI 모델
Archives
- Today
- Total
괴발개발
[programmers] JAVA- 신규 아이디 추천 본문
class Solution {
public String solution(String new_id) {
//1단계 아이디 모두 소문자로 변환
new_id = new_id.toLowerCase();
//2단계 아이디에서 알파벳 소문자, 0-9까지 숫자, 특수문자 . - _ 만 허용하고 나머지는 제거
String id = "";
for(int i = 0; i < new_id.length(); i++) {
char ch = new_id.charAt(i);
//소문자
if(ch >= 'a' && ch <= 'z') {
id += String.valueOf(ch);
}
//숫자
else if(ch >= '0' && ch <= '9') {
id += String.valueOf(ch);
}
// . - _ 특수문자 허용
else if(ch == '.' || ch == '-' || ch == '_') {
id += String.valueOf(ch);
}
}
//3단계 .. 이 연속될때는 . 하나로 바꾼다.
for(int i = 0; i < id.length(); i++) {
if(id.charAt(i) == '.') {
int j = i+1;
String dot = ".";
while(j != id.length() && id.charAt(j) == '.') {
dot += ".";
j++;
}
if(dot.length() > 1)
id = id.replace(dot, ".");
}
}
//4단계 아이디가 .으로 시작하거나 . 으로 끝나면 이를 제거한다.
if(id.startsWith(".") ) {
id = id.substring(1, id.length());
} else if(id.endsWith(".")) {
id = id.substring(0, id.length()-1);
}
//5단계 아이디가 빈 문자열이라면 a를 대입.
if(id.length() == 0) {
id += "a";
}
//6단계 아이디의 길이가 16이상이라면 15이후부턴 자른다.
if(id.length() >= 16) {
id = id.substring(0, 15);
}
if (id.charAt(id.length() - 1) == '.') {
id = id.substring(0, id.length() - 1);
}
//7단계 아이디의 길이가 2이하라면 마지막 문자를 아이디 길이가 3을 넘을때까지 더한다.
while(id.length() < 3) {
id += id.charAt(id.length()-1);
}
return id;
}
}
복사가 이제야 된다!
6단계에서 아이디를 자르면서 4단계 원칙을 위반 할 수 있는 가능성이 있으므로
.을 제거할 코드를 추가해야한다.
'Study > 프로그래머스' 카테고리의 다른 글
| [programmers] JAVA - 핸드폰 번호 가리기 (0) | 2022.04.26 |
|---|