Java - 문자열에서 특수문자 제거, 숫자 제거, 숫자만 남기기

문자열에서 어떤 종류의 문자만 제거하는 방법을 소개합니다. 예를 들어, 문자열에서 특수문자만 제거하거나 숫자만 제거할 수 있습니다. 또는 숫자를 제외한 다른 문자는 모두 제거할 수 있습니다.

1. 문자열에서 특수문자 제거

replaceAll()과 정규표현식을 사용하여 문자열에서 특수문자를 모두 제거할 수 있습니다.

아래와 같은 정규표현식을 사용하여 한글, 영어, 숫자, 공백을 제외한 다른 문자는 모두 제거할 수 있습니다.

  • \uAC00-\uD7A30 : 모든 한글 음절(가-힣)
  • a-z : 영어 소문자
  • A-Z : 영어 대문자
  • 0-9 : 숫자
  • \\s : 띄어쓰기

아래 예제에서 \uAC00-\uD7A30-9a-zA-Z\\s는 한글, 영어, 숫자, 띄어쓰기에 해당하는 문자를 의미합니다. 앞에 ^는 이 정규표현식에 해당하지 않는 경우를 의미하며, not과 같습니다. 따라서 match의 패턴은 한글, 영어, 숫자, 띄어쓰기에 해당하지 않는 문자를 모두 찾으라는 의미입니다. 그리고 replaceAll(pattern, string)은 pattern에 해당하는 내용을 string으로 대체하라는 함수입니다. 만약 찾은 패턴을 공백으로 변환하면 특정 패턴의 문자를 제거하게 됩니다.

public class Example {

    public static String replaceString(String str){
        String match = "[^\uAC00-\uD7A30-9a-zA-Z\\s]";
        str = str.replaceAll(match, "");
        return str;
    }

    public static void main(String[] args) {
        System.out.println(replaceString("AA**BB#@$CC 가나다-123"));
    }
}

Output:

AABBCC 가나다123

2. 문자열에서 숫자만 남기기

아래와 같이 ^0-9 패턴을 사용하여 숫자가 아닌 문자를 모두 찾을 수 있습니다. 그리고 이 문자들을 공백으로 변환하여 제거할 수 있습니다.

public class Example1 {

    public static String replaceString(String str){
        String match = "[^0-9]";
        str = str.replaceAll(match, "");
        return str;
    }

    public static void main(String[] args) {
        System.out.println(replaceString("AA**BB#@$CC 가나다-123"));
    }
}

Output:

123

3. 문자열에서 숫자만 제거

아래와 같이 0-9 패턴으로 숫자만 찾을 수 있고, 공백으로 변환하여 제거할 수 있습니다.

public class Example2 {

    public static String replaceString(String str){
        String match = "[0-9]";
        str = str.replaceAll(match, "");
        return str;
    }

    public static void main(String[] args) {
        System.out.println(replaceString("AA**BB#@$CC 가나다-123"));
    }
}

Output:

AA**BB#@$CC 가나다-

4. 문자열에서 알파벳만 남기기

^a-zA-Z 패턴은 알파벳을 제외한 문자를 찾는 것이고, 이 패턴의 문자들을 공백으로 변환하여 제거하면 알파벳만 남게됩니다.

public class Example2 {

    public static String replaceString(String str){
        String match = "[^a-zA-Z]";
        str = str.replaceAll(match, "");
        return str;
    }

    public static void main(String[] args) {
        System.out.println(replaceString("AA**BB#@$CC 가나다-123"));
    }
}

Output:

AABBCC
Loading script...
codechachaCopyright ©2019 codechacha