๋ฌธ์ : Lv.1 ์ ๊ท์์ด๋ ์ถ์ฒ https://school.programmers.co.kr/learn/courses/30/lessons/72410# ์ธ์ด : JAVA ์ฒด๊ฐ Level : โ โ โ Review: ์ ๊ท์ ํ์ฉ! |
๐ก chatAt ์ผ๋ก ํ๋ํ๋ ๋น๊ตํ ๊ฑฐ ์๊ฐํ๋ค๊ฐ.. ๊ท๋ชจ๊ฐ ๋ง๋ ์๋ ๊ฒ ๊ฐ์์
replaceAll ์ฌ์ฉํ๋ค. ์ ๊ทํํ์์ ํ๋ช ์ด์ง๋ง.. ํ๋๊ธ์ ํ๋ฆฌ๋ฉด ์กฐ๊ฑด์ด ๋ฌ๋ผ์ง๋ ์ฃผ์ํด์ ์ฌ์ฉํด์ผํ๋ค. ๐
[^a-z0-9._-] | a~z, 0~9, ., _, -๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฌธ์ ์ ๊ฑฐ ([^...]: not ๋ฌธ์ ํด๋์ค) |
"A@b#c" → "bc" |
\\.{2,} | ๋ง์นจํ(.)๊ฐ 2๊ฐ ์ด์ ์ฐ์๋ ๋ถ๋ถ์ ํ๋์ ๋ง์นจํ๋ก ์นํ (\\.: ๋ง์นจํ, {2,}: 2ํ ์ด์ ๋ฐ๋ณต) |
"a..b...c" → "a.b.c" |
^\\. | ๋ฌธ์์ด ์์ ๋ถ๋ถ์ด ๋ง์นจํ์ธ ๊ฒฝ์ฐ ๋งค์น (^: ์์, \\.: ๋ง์นจํ) |
".abc" → "abc" |
\\.$ | ๋ฌธ์์ด ๋ ๋ถ๋ถ์ด ๋ง์นจํ์ธ ๊ฒฝ์ฐ ๋งค์น ($: ๋, \\.: ๋ง์นจํ) |
"abc." → "abc" |
[] | ๋ฌธ์ ํด๋์ค |
^ (๋ฌธ์์ด ๋ฐ) | ๋ฌธ์์ด ์์ anchor |
^ (๋ฌธ์ ํด๋์ค ์) | ๋ถ์ (not) |
$ | ๋ฌธ์์ด ๋ anchor |
{n,} | n๋ฒ ์ด์ ๋ฐ๋ณต |
\\. | ๋ง์นจํ ๋ฆฌํฐ๋ด (์ ๊ท์์์ .๋ ์๋ฌด ๋ฌธ์์ด๋ฏ๋ก ์ด์ค์ผ์ดํ ํ์) |
import java.util.*;
class Solution {
public String solution(String new_id) {
String answer = new_id;
//1 ์๋ฌธ์๋ก
answer = answer.toLowerCase();
// 2 ๋ฌธ์ ์ ๊ฑฐ
answer = answer.replaceAll("[^a-z0-9._-]","");
// 3 ์ฐ์ ๋ถ๋ถ ์นํ
answer = answer.replaceAll("\\.{2,}", ".");
// 4 ์๋ค ์นํ
answer = answer.replaceAll("^\\.|\\.$", "");
if (answer.isEmpty()) {
answer = "a";
}
//16์ ์ด์์ด๋ฉด ์ ๊ฑฐ
if (answer.length() > 15){
answer = answer.substring(0,15);
}
// 4 ์๋ค ์นํ
answer = answer.replaceAll("\\.$", "");
// ๋น๋ฌธ์์ด ์ด๋ฉด a ๋์
if (answer.length() <= 2 && answer.length() > 0) {
char lastChar = answer.charAt(answer.length() - 1);
while (answer.length() < 3) {
answer += lastChar;
}
}
return answer;
}
}