Java

[Java] 정규표현식 (기본)

무토(MUTO) 2021. 3. 21. 22:22

0. 언제 쓰는가?

정규식에는 다양한 기능이 있다.

기본적인 기능부터 살펴보도록 하자.

이번에 살펴볼 기능은 각종 코딩 테스트나 알고리즘에 자주 나오는 유형이다.

  1. 해당 문자열이 내가 원하는 값들로만 이루어져 있는지 확인하고 싶을 때 사용한다.

  2. 혹은 절대로 있으면 안되는 값이 포함되어 있는지 확인하고 싶을 때 사용한다.

  3. 이것을 응용하면 내가 원하는 값이 포함 되어있는지 확인할 수도 있다.

1. 내가 원하는 값들만 들어있는지 확인한다.

public class Main {

    private static boolean isOnlyNumber(String string) {
        return string.matches("^[0-9]*$");
    }

    private static boolean isOnlyCapitalAlphabet(String string) {
        return string.matches("^[A-Z]*$");
    }

    private static boolean isOnlySmallAlphabet(String string) {
        return string.matches("^[a-z]*$");
    }

    private static boolean isOnlyAlphabet(String string) {
        return string.matches("^[A-Za-z]*$");
    }

    private static boolean isOnlyKorean(String string) {
        return string.matches("^[가-힣]*$");
    }
}

2. 절대로 들어있으면 안되는 값이 있는지 확인한다.

[]안에 ^는 not이라는 표시이다. 이것을 활용하면 다음과 같이 표현할 수 있다.

public class Main {

    private static boolean hasNoNumber(String string) {
        return string.matches("^[^0-9]*$");
    }

    private static boolean hasNoCapitalAlphabet(String string) {
        return string.matches("^[^A-Z]*$");
    }

    private static boolean hasNoSmallAlphabet(String string) {
        return string.matches("^[^a-z]*$");
    }

    private static boolean hasNoAlphabet(String string) {
        return string.matches("^[^A-Za-z]*$");
    }

    private static boolean hasNoKorean(String string) {
        return string.matches("^[^가-힣]*$");
    }
}

3. 내가 원하는 값이 포함 되어있는지 확인한다.

자바 ! 연산자를 활용하자

public class Main {

    private static boolean hasNumber(String string) {
        return !string.matches("^[^0-9]*$");
    }

    private static boolean hasCapitalAlphabet(String string) {
        return !string.matches("^[^A-Z]*$");
    }

    private static boolean hasSmallAlphabet(String string) {
        return !string.matches("^[^a-z]*$");
    }

    private static boolean hasAlphabet(String string) {
        return !string.matches("^[^A-Za-z]*$");
    }

    private static boolean hasKorean(String string) {
        return !string.matches("^[^가-힣]*$");
    }
}

'Java' 카테고리의 다른 글

[Java] Comparator / Comparable  (0) 2020.12.08