https://school.programmers.co.kr/learn/courses/30/lessons/72410
νλ‘κ·Έλλ¨Έμ€
μ½λ μ€μ¬μ κ°λ°μ μ±μ©. μ€ν κΈ°λ°μ ν¬μ§μ 맀μΉ. νλ‘κ·Έλλ¨Έμ€μ κ°λ°μ λ§μΆ€ν νλ‘νμ λ±λ‘νκ³ , λμ κΈ°μ κΆν©μ΄ μ λ§λ κΈ°μ λ€μ λ§€μΉ λ°μΌμΈμ.
programmers.co.kr
βοΈλ¬Έμ μ€λͺ
μΉ΄μΉ΄μ€μ μ
μ¬ν μ μ
κ°λ°μ λ€μ€λ "μΉ΄μΉ΄μ€κ³μ κ°λ°ν"μ λ°°μΉλμ΄, μΉ΄μΉ΄μ€ μλΉμ€μ κ°μ
νλ μ μ λ€μ μμ΄λλ₯Ό μμ±νλ μ
무λ₯Ό λ΄λΉνκ² λμμ΅λλ€. "λ€μ€"μκ² μ£Όμ΄μ§ 첫 μ
무λ μλ‘ κ°μ
νλ μ μ λ€μ΄ μΉ΄μΉ΄μ€ μμ΄λ κ·μΉμ λ§μ§ μλ μμ΄λλ₯Ό μ
λ ₯νμ λ, μ
λ ₯λ μμ΄λμ μ μ¬νλ©΄μ κ·μΉμ λ§λ μμ΄λλ₯Ό μΆμ²ν΄μ£Όλ νλ‘κ·Έλ¨μ κ°λ°νλ κ²μ
λλ€.
λ€μμ μΉ΄μΉ΄μ€ μμ΄λμ κ·μΉμ
λλ€.
μμ΄λμ κΈΈμ΄λ 3μ μ΄μ 15μ μ΄νμ¬μΌ ν©λλ€.
μμ΄λλ μνλ²³ μλ¬Έμ, μ«μ, λΉΌκΈ°(-), λ°μ€(_), λ§μΉ¨ν(.) λ¬Έμλ§ μ¬μ©ν μ μμ΅λλ€.
λ¨, λ§μΉ¨ν(.)λ μ²μκ³Ό λμ μ¬μ©ν μ μμΌλ©° λν μ°μμΌλ‘ μ¬μ©ν μ μμ΅λλ€.
"λ€μ€"λ λ€μκ³Ό κ°μ΄ 7λ¨κ³μ μμ°¨μ μΈ μ²λ¦¬ κ³Όμ μ ν΅ν΄ μ κ· μ μ κ° μ
λ ₯ν μμ΄λκ° μΉ΄μΉ΄μ€ μμ΄λ κ·μΉμ λ§λ μ§ κ²μ¬νκ³ κ·μΉμ λ§μ§ μμ κ²½μ° κ·μΉμ λ§λ μλ‘μ΄ μμ΄λλ₯Ό μΆμ²ν΄ μ£Όλ €κ³ ν©λλ€.
μ κ· μ μ κ° μ
λ ₯ν μμ΄λκ° new_id λΌκ³ νλ€λ©΄,
1λ¨κ³ new_idμ λͺ¨λ λλ¬Έμλ₯Ό λμλλ μλ¬Έμλ‘ μΉνν©λλ€.
2λ¨κ³ new_idμμ μνλ²³ μλ¬Έμ, μ«μ, λΉΌκΈ°(-), λ°μ€(_), λ§μΉ¨ν(.)λ₯Ό μ μΈν λͺ¨λ λ¬Έμλ₯Ό μ κ±°ν©λλ€.
3λ¨κ³ new_idμμ λ§μΉ¨ν(.)κ° 2λ² μ΄μ μ°μλ λΆλΆμ νλμ λ§μΉ¨ν(.)λ‘ μΉνν©λλ€.
4λ¨κ³ new_idμμ λ§μΉ¨ν(.)κ° μ²μμ΄λ λμ μμΉνλ€λ©΄ μ κ±°ν©λλ€.
5λ¨κ³ new_idκ° λΉ λ¬Έμμ΄μ΄λΌλ©΄, new_idμ "a"λ₯Ό λμ
ν©λλ€.
6λ¨κ³ new_idμ κΈΈμ΄κ° 16μ μ΄μμ΄λ©΄, new_idμ 첫 15κ°μ λ¬Έμλ₯Ό μ μΈν λλ¨Έμ§ λ¬Έμλ€μ λͺ¨λ μ κ±°ν©λλ€.
λ§μ½ μ κ±° ν λ§μΉ¨ν(.)κ° new_idμ λμ μμΉνλ€λ©΄ λμ μμΉν λ§μΉ¨ν(.) λ¬Έμλ₯Ό μ κ±°ν©λλ€.
7λ¨κ³ new_idμ κΈΈμ΄κ° 2μ μ΄νλΌλ©΄, new_idμ λ§μ§λ§ λ¬Έμλ₯Ό new_idμ κΈΈμ΄κ° 3μ΄ λ λκΉμ§ λ°λ³΅ν΄μ λμ λΆμ
λλ€.
μλ₯Ό λ€μ΄, new_id κ°μ΄ "...!@BaT#*..y.abcdefghijklm" λΌλ©΄, μ 7λ¨κ³λ₯Ό κ±°μΉκ³ λλ©΄ new_idλ μλμ κ°μ΄ λ³κ²½λ©λλ€.
1λ¨κ³ λλ¬Έμ 'B'μ 'T'κ° μλ¬Έμ 'b'μ 't'λ‘ λ°λμμ΅λλ€.
"...!@BaT#*..y.abcdefghijklm" → "...!@bat#*..y.abcdefghijklm"
2λ¨κ³ '!', '@', '#', '*' λ¬Έμκ° μ κ±°λμμ΅λλ€.
"...!@bat#*..y.abcdefghijklm" → "...bat..y.abcdefghijklm"
3λ¨κ³ '...'μ '..' κ° '.'λ‘ λ°λμμ΅λλ€.
"...bat..y.abcdefghijklm" → ".bat.y.abcdefghijklm"
4λ¨κ³ μμ΄λμ μ²μμ μμΉν '.'κ° μ κ±°λμμ΅λλ€.
".bat.y.abcdefghijklm" → "bat.y.abcdefghijklm"
5λ¨κ³ μμ΄λκ° λΉ λ¬Έμμ΄μ΄ μλλ―λ‘ λ³νκ° μμ΅λλ€.
"bat.y.abcdefghijklm" → "bat.y.abcdefghijklm"
6λ¨κ³ μμ΄λμ κΈΈμ΄κ° 16μ μ΄μμ΄λ―λ‘, μ²μ 15μλ₯Ό μ μΈν λλ¨Έμ§ λ¬Έμλ€μ΄ μ κ±°λμμ΅λλ€.
"bat.y.abcdefghijklm" → "bat.y.abcdefghi"
7λ¨κ³ μμ΄λμ κΈΈμ΄κ° 2μ μ΄νκ° μλλ―λ‘ λ³νκ° μμ΅λλ€.
"bat.y.abcdefghi" → "bat.y.abcdefghi"
λ°λΌμ μ κ· μ μ κ° μ
λ ₯ν new_idκ° "...!@BaT#*..y.abcdefghijklm"μΌ λ, λ€μ€μ νλ‘κ·Έλ¨μ΄ μΆμ²νλ μλ‘μ΄ μμ΄λλ "bat.y.abcdefghi" μ
λλ€.
βοΈ[λ¬Έμ ]
μ κ· μ μ κ° μ λ ₯ν μμ΄λλ₯Ό λνλ΄λ new_idκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, "λ€μ€"κ° μ€κ³ν 7λ¨κ³μ μ²λ¦¬ κ³Όμ μ κ±°μΉ νμ μΆμ² μμ΄λλ₯Ό return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄ μ£ΌμΈμ.
βοΈ[μ νμ¬ν]
new_idλ κΈΈμ΄ 1 μ΄μ 1,000 μ΄νμΈ λ¬Έμμ΄μ
λλ€.
new_idλ μνλ²³ λλ¬Έμ, μνλ²³ μλ¬Έμ, μ«μ, νΉμλ¬Έμλ‘ κ΅¬μ±λμ΄ μμ΅λλ€.
new_idμ λνλ μ μλ νΉμλ¬Έμλ -_.~!@#$%^&*()=+[{]}:?,<>/ λ‘ νμ λ©λλ€.
βοΈ[μ μΆλ ₯ μ]
no | new_id | result |
μ1 | "...!@BaT#*..y.abcdefghijklm" | "bat.y.abcdefghi" |
μ2 | "z-+.^." | "z--" |
μ3 | "=.=" | "aaa" |
μ4 | "123_.def" | "123_.def" |
μ5 | "abcdefghijklmn.p" | "abcdefghijklmn" |
μ
μΆλ ₯ μμ λν μ€λͺ
μ
μΆλ ₯ μ #1
λ¬Έμ μ μμμ κ°μ΅λλ€.
μ
μΆλ ₯ μ #2
7λ¨κ³λ₯Ό κ±°μΉλ λμ new_idκ° λ³ννλ κ³Όμ μ μλμ κ°μ΅λλ€.
1λ¨κ³ λ³ν μμ΅λλ€.
2λ¨κ³ "z-+.^." → "z-.."
3λ¨κ³ "z-.." → "z-."
4λ¨κ³ "z-." → "z-"
5λ¨κ³ λ³ν μμ΅λλ€.
6λ¨κ³ λ³ν μμ΅λλ€.
7λ¨κ³ "z-" → "z--"
μ
μΆλ ₯ μ #3
7λ¨κ³λ₯Ό κ±°μΉλ λμ new_idκ° λ³ννλ κ³Όμ μ μλμ κ°μ΅λλ€.
1λ¨κ³ λ³ν μμ΅λλ€.
2λ¨κ³ "=.=" → "."
3λ¨κ³ λ³ν μμ΅λλ€.
4λ¨κ³ "." → "" (new_idκ° λΉ λ¬Έμμ΄μ΄ λμμ΅λλ€.)
5λ¨κ³ "" → "a"
6λ¨κ³ λ³ν μμ΅λλ€.
7λ¨κ³ "a" → "aaa"
μ
μΆλ ₯ μ #4
1λ¨κ³μμ 7λ¨κ³κΉμ§ κ±°μΉλ λμ new_id("123_.def")λ λ³νμ§ μμ΅λλ€. μ¦, new_idκ° μ²μλΆν° μΉ΄μΉ΄μ€μ μμ΄λ κ·μΉμ λ§μ΅λλ€.
μ
μΆλ ₯ μ #5
1λ¨κ³ λ³ν μμ΅λλ€.
2λ¨κ³ λ³ν μμ΅λλ€.
3λ¨κ³ λ³ν μμ΅λλ€.
4λ¨κ³ λ³ν μμ΅λλ€.
5λ¨κ³ λ³ν μμ΅λλ€.
6λ¨κ³ "abcdefghijklmn.p" → "abcdefghijklmn." → "abcdefghijklmn"
7λ¨κ³ λ³ν μμ΅λλ€.
πͺνμ΄
μΌλ°μ μΌλ‘ λ¬Έμμ΄μ κ°κ³΅νλ λ₯λ ₯μ ν μ€νΈνλ λ¬Έμ μ΄λ€.
νΉν μ κ·μμ μΈ μ μλμ§μ λν ν μ€νΈ κ°λ€.
λͺλͺ μ κ·μμ μκ³ λͺλͺ μ κ·μμ λͺ°λΌμ νμ΄ μ΄νμ μ κ·μμ λν΄ μ²¨λΆν΄ λμλ€.
νΉνλ replaceAll()μ λν΄ μ’ μμμΌ ν μ μλ λ¬Έμ λΌ μκ°νλ€.
βν μ€νΈ μΌμ΄μ€ 2 , 22 , 23 λ² λ°νμμλ¬
βνλ¦° νμ΄
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public static String solution(String new_id) {
String answer = new_id.toLowerCase();
StringBuilder sb = new StringBuilder();
answer = answer.replaceAll("[^0-9a-z-_.]", "")
.replaceAll("\\.++", ".");
sb.append(answer);
if (sb.charAt(0) == '.') sb.deleteCharAt(0);
if (sb.charAt(sb.length() - 1) == '.') sb.deleteCharAt(sb.length() - 1);
if (sb.length() == 0) sb.append('a');
if (sb.length() >= 16) sb.delete(15, sb.length());
if (sb.charAt(sb.length() - 1) == '.') sb.deleteCharAt(sb.length() - 1);
if (sb.length() <= 2) {
char lastChar = sb.charAt(sb.length() - 1);
for (int i = sb.length(); i < 3; i++) {
sb.append(lastChar);
}
}
return sb.toString();
}
|
cs |
λ°νμ μλ¬κ° λλ μ΄μ λ λ°λ‘ 7ν 8ν λλ¬Έμ΄λ€. 5νκΉμ§μ κ°κ³΅μ λ€ νμ λ answerμλ μ무 κ°λ μλ nullκ°μΌ μ μλλ°, μΈλ±μ€λ₯Ό νμΈνλ€κ³ νλκΉ λ°λ‘ λ°νμμλ¬κ° λλ κ²μ΄λ€.
β λ§μ νμ΄
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public static String solution(String new_id) {
String answer = new_id.toLowerCase();
StringBuilder sb = new StringBuilder();
answer = answer.replaceAll("[^0-9a-z-_.]", "")
.replaceAll("\\.++", ".");
sb.append(answer);
if (sb.length() != 0){
if (sb.charAt(0) == '.') sb.deleteCharAt(0);
}
if (sb.length() != 0){
if (sb.charAt(sb.length() - 1) == '.') sb.deleteCharAt(sb.length() - 1);
}
if (sb.length() == 0) sb.append('a');
if (sb.length() >= 16) sb.delete(15, sb.length());
if (sb.charAt(sb.length() - 1) == '.') sb.deleteCharAt(sb.length() - 1);
if (sb.length() <= 2) {
char lastChar = sb.charAt(sb.length() - 1);
for (int i = sb.length(); i < 3; i++) {
sb.append(lastChar);
}
}
return sb.toString();
}
|
cs |
λ°λΌμ μ€νΈλ§λΉλκ° ν¬κΈ°κ° 0μ΄ μλλλ§ μ€μ νλλ‘ λ°κΏμ£Όλ ν΅κ³Όνμλ€.
βν μ€νΈ μΌμ΄μ€ 15 , 20 , 21 , 22 , 25 λ² μ€ν¨
answer = answer.replaceAll("[^0-9a-z-_.]", "").replaceAll("\\.++", ".");
μ΄κ² λν μ±κ³΅ νμΌλ
answer = answer.replaceAll("[~!@#$%^&*()=+[{]}:?,<>/]", "").replaceAll("\\.++", ".");
μ΄κ² λν λΉμ°ν μ±κ³΅ν κ²μ΄λΌ μκ°νκ³ μ½λλ₯Ό λ°κΏμ νμ΄ λ³΄μλ€.
μλνλ©΄ λ¬Έμ μμ μ£Όμ΄μ§λ νΉμλ¬Έμλ -_.~!@#$%^&*()=+[{]}:?,<>/ μΌλ‘ μ ν λμ΄ μκΈ° λλ¬Έμ΄λ€.
μ μμ λ‘μ§μ "[^]" μ¨μ ^ λ€μ μ€λ λ¬Έμλ€μ "μ μΈν" λͺ¨λ λ¬Έμλ€μ μ§μ°λ κ²μ΄κ³ ,
νμμ λ‘μ§μ μ£Όμ΄μ§ νΉμ λ¬Έμμμ μ§μ°λ©΄ μλλ νΉμλ¬Έμ -_. λ₯Ό μ μΈνκ³ "[ ]" μ΄ λκ΄νΈ μμ μλ μ λ€μ μ§μλΌ λΌλ λ»μ΄κΈ° λλ¬Έμ΄λ€.
νμ§λ§ ν μ€νΈ μΌμ΄μ€ κ³³κ³³μμ μ€ν¨ νμλ€.
βνλ¦° νμ΄
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public static String solution(String new_id) {
String answer = new_id.toLowerCase();
StringBuilder sb = new StringBuilder();
answer = answer.replaceAll("[~!@#$%^&*()=+[{]}:?,<>/]", "")
.replaceAll("\\.++", ".");
sb.append(answer);
if (sb.length() != 0){
if (sb.charAt(0) == '.') sb.deleteCharAt(0);
}
if (sb.length() != 0){
if (sb.charAt(sb.length() - 1) == '.') sb.deleteCharAt(sb.length() - 1);
}
if (sb.length() == 0) sb.append('a');
if (sb.length() >= 16) sb.delete(15, sb.length());
if (sb.charAt(sb.length() - 1) == '.') sb.deleteCharAt(sb.length() - 1);
if (sb.length() <= 2) {
char lastChar = sb.charAt(sb.length() - 1);
for (int i = sb.length(); i < 3; i++) {
sb.append(lastChar);
}
}
return sb.toString();
}
|
cs |
4ν λκ΄νΈ [ ] λλ¬Έμ μλ¬κ° λλ κ²μ΄λ€.
λ€μμ μ΄ λ‘μ§μ λν μμΈ μΌμ΄μ€ μ΄λ€.
"-.~!@#$%&*()=+[{]}:?,<>/.-"
μ΄ μ£Όμ΄μ§λ©΄ κΈ°λκ°μ΄ -.- μ΄μ§λ§
μ λλ‘ νλ©΄ -.[].- μ΄λ κ² λμ¨λ€.
μ μ΄μ μ κ·μ ννμ λκ΄νΈ [] λ₯Ό μ°κΈ° λλ¬Έμ []λ₯Ό μ§μ°μ§λ₯Ό λͺ»νλ κ²μ΄λ€.
μ λ κ² μ°λ©΄ λ€μκ³Ό κ°μ μ€λ₯κ° λμ¨λ€.
"Redundant nested character class"λΌλ μ€λ₯ λ©μμ§λ μ κ· ννμμ κ΄λ ¨λ λ©μμ§λ‘, μ κ· ννμμ μμ±ν λ λ°μν μ μλ μ€λ₯ μ€ νλμ΄λ€. κ·Έλ κΈ° λλ¬Έμ μμ¬λμλ₯Ό μ¨μ \\ μ΄μ€μΌμ΄ν μμΌμ€μΌ νλ€.
βλ§μ νμ΄
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public static String solution(String new_id) {
String answer = new_id.toLowerCase();
StringBuilder sb = new StringBuilder();
answer = answer.replaceAll("[~!@#$%^&*()=+\\[{\\]}:?,<>/]", "")
.replaceAll("\\.++", ".");
sb.append(answer);
if (sb.length() != 0){
if (sb.charAt(0) == '.') sb.deleteCharAt(0);
}
if (sb.length() != 0){
if (sb.charAt(sb.length() - 1) == '.') sb.deleteCharAt(sb.length() - 1);
}
if (sb.length() == 0) sb.append('a');
if (sb.length() >= 16) sb.delete(15, sb.length());
if (sb.charAt(sb.length() - 1) == '.') sb.deleteCharAt(sb.length() - 1);
if (sb.length() <= 2) {
char lastChar = sb.charAt(sb.length() - 1);
for (int i = sb.length(); i < 3; i++) {
sb.append(lastChar);
}
}
return sb.toString();
}
|
cs |
π― μ κ·μμ μ¬μ©ν κΉλν νμ΄
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
public static String solution(String new_id) {
String answer = new_id.toLowerCase(); // 1λ¨κ³
answer = answer.replaceAll("[^-_.a-z0-9]", ""); // 2λ¨κ³
answer = answer.replaceAll("[.]{2,}", "."); // 3λ¨κ³
answer = answer.replaceAll("^[.]|[.]$", ""); // 4λ¨κ³
if (answer.equals("")) { // 5λ¨κ³
answer += "a";
}
if (answer.length() >= 16) { // 6λ¨κ³
answer = answer.substring(0, 15);
answer = answer.replaceAll("[.]$","");
}
if (answer.length() <= 2) { // 7λ¨κ³
while (answer.length() < 3) {
answer += answer.charAt(answer.length()-1);
}
}
return answer;
}
|
cs |
π‘λ¬Έμμ΄ μ κ·μ
- .x: μμμλ¬Έμ + x
ex) a.c : abc, a0c ,,
ex) a..c : abbc, a00c ,, - x* : xμ 0λ² μ΄μ λ°λ³΅
- x+ : xμ 1λ² μ΄μ λ°λ³΅
- ^x : λ¬Έμμ΄μ΄ xλ‘ μμ
- x$ : λ¬Έμμ΄μ΄ xλ‘ λλ¨
- x? : xκ° μ‘΄μ¬ν μλ, νμ§ μμ μλ μμ
ex) ab?c : ac, abc λͺ¨λ κ°λ₯ - x|y : x λλ y
ex) (x|y)z : xy λλ yz λͺ¨λ κ°λ₯ - x{n} : xμ nλ² λ°λ³΅
- x{m,n} : xμ mλ² μ΄μ nλ² μ΄ν λ°λ³΅
- x{n,} : xμ nλ² μ΄μ λ°λ³΅
- [xy] : x λλ y ν λ¬Έμ
- [x-z] : x~z λ²μ λ΄μ ν λ¬Έμ
- [^xy] : x λλ yλ₯Ό μ μΈν ν λ¬Έμ
ex) [^yz] : a, b, c, ,,, w, x μ€ ν λ¬Έμλ₯Ό μλ―Έ
λνμ μΌλ‘ [0-9] λμ μ \dλ₯Ό, [a-zA-Z0-9_] λμ μ \wλ₯Ό μ¬μ©ν μ μλ€.
^
|
λ¬Έμμ΄μ μμ
|
$
|
λ¬Έμμ΄μ μ’
λ£
|
.
|
μμμ ν λ¬Έμ(νμμ
λ ₯, λ¬Έμμ μ’
λ₯ κ°λ¦¬μ§ μμ) λ¨, \ λ λ£μ μ μμ
|
*
|
μ λ¬Έμκ° μμ μλ 무νμ λ§μ μλ μμ
|
+
|
μ λ¬Έμκ° νλ μ΄μ
|
?
|
μ λ¬Έμκ° μκ±°λ νλμμ
|
[]
|
λ¬Έμμ μ§ν©μ΄λ λ²μλ₯Ό λνλ΄λ©° λ λ¬Έμ μ¬μ΄λ - κΈ°νΈλ‘ λ²μλ₯Ό λνλΈλ€.
|
{}
|
νμ λλ λ²μλ₯Ό λνλΈλ€.
|
()
|
μκ΄νΈ μμ λ¬Έμλ₯Ό νλμ λ¬Έμλ‘ μΈμ
|
|
|
ν¨ν΄ μμμ or μ°μ°μ μνν λ μ¬μ©
|
\s
|
곡백 λ¬Έμ
|
\S
|
곡백 λ¬Έμκ° μλ λλ¨Έμ§ λ¬Έμ
|
\w
|
μνλ²³μ΄λ μ«μ
|
\W
|
μνλ²³μ΄λ μ«μλ₯Ό μ μΈν λ¬Έμ
|
\d
|
μ«μ [0-9]μ λμΌ
|
\D
|
μ«μλ₯Ό μ μΈν λͺ¨λ λ¬Έμ
|
\
|
μ κ·ννμ μμ¬λμ(\)λ νμ₯ λ¬Έμ
μμ¬λμ λ€μμ μΌλ° λ¬Έμκ° μ€λ©΄ νΉμλ¬Έμλ‘ μ·¨κΈνκ³ , μμ¬λμ λ€μμ νΉμλ¬Έμκ° μ€λ©΄ κ·Έ λ¬Έμ μ체λ₯Ό μλ―Έ |
[]
|
or : λκ΄νΈ μμ λͺ¨λ λ¬Έμ
|
[^]
|
not : λκ΄νΈ μμ λ¬Έμ μΈμ λͺ¨λ λ¬Έμ
|
^[]
|
λκ΄νΈ μμ λ¬Έμλ‘ μμνλ λ¬Έμμ΄
|
[]$
|
λκ΄νΈ μμ λ¬Έμλ‘ λλλ λ¬Έμμ΄
|
ex)
μ«μλ₯Ό μ μΈν λͺ¨λ λ¬Έμ μ κ±° : str.replaceAll("[^0-9]","");
μ«μ μ κ±° : str.replaceAll("[0-9]","");
λκΈ