Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바 CharMatcher 클래스 완벽 정리 – 구아바(Guava) 핵심 메서드와 실전 예제


CharMatcher 클래스는 Predicate가 Object에 대해 참/거짓을 판별하듯이, 모든 자바(Java) char 값에 대해 참(true) 또는 거짓(false) 여부를 판별하는 기능을 제공합니다. 구아바(Guava) 라이브러리에 포함된 이 클래스는 문자 검사, 필터링, 치환 작업을 간결하고 효율적으로 처리할 수 있게 해줍니다.

CharMatcher의 주요 메서드

CharMatcher에서 자주 사용되는 핵심 메서드는 다음과 같습니다.

번호메서드 및 설명
1CharMatcher and(CharMatcher other)
현재 매처(matcher)와 다른 매처(other) 양쪽 모두에서 일치하는 문자만 일치시키는 새로운 매처를 반환합니다.
2static CharMatcher anyOf(CharSequence sequence)
주어진 문자 시퀀스(sequence)에 포함된 문자 중 하나라도 일치하면 참을 반환하는 char 매처를 생성합니다.
3boolean apply(Character character)
더 이상 권장되지 않는 메서드(Deprecated)입니다. Predicate 인터페이스를 만족시키기 위해서만 제공되며, 대신 matches(char) 메서드를 사용하는 것이 좋습니다.
4String collapseFrom(CharSequence sequence, char replacement)
입력 문자 시퀀스의 복사본을 반환하며, 이 매처와 일치하는 연속된 문자 그룹을 하나의 대체 문자(replacement)로 압축하여 치환합니다.
5int countIn(CharSequence sequence)
문자 시퀀스 내에서 매처와 일치하는 문자의 개수를 반환합니다.
6static CharMatcher forPredicate(Predicate<? super Character> predicate)
주어진 Character 기반 프리디케이트(predicate)와 동일하게 동작하지만, 원시 타입인 char 인스턴스를 대상으로 처리하는 매처를 반환합니다.
7int indexIn(CharSequence sequence)
문자 시퀀스에서 처음으로 일치하는 문자의 인덱스를 반환하며, 일치하는 문자가 없으면 -1을 반환합니다.

예제 코드

선호하는 편집기를 사용하여 C:/> Guava 디렉터리에 다음 자바 프로그램을 작성해 보겠습니다.

다음은 GuavaTester.java 파일의 전체 코드입니다.

import com.google.common.base.CharMatcher;
import com.google.common.base.Splitter;

public class GuavaTester {
    public static void main(String args[]) {
        GuavaTester tester = new GuavaTester();
        tester.testCharMatcher();
    }

    private void testCharMatcher() {
        // 숫자만 추출
        System.out.println(CharMatcher.DIGIT.retainFrom("mahesh123"));

        // 문자열 양 끝의 공백을 제거하고, 연속된 공백은 하나의 공백으로 압축
        System.out.println(CharMatcher.WHITESPACE.trimAndCollapseFrom(" Mahesh Parashar ", ' '));

        // 모든 숫자를 '*' 문자로 치환
        System.out.println(CharMatcher.JAVA_DIGIT.replaceFrom("mahesh123", "*"));

        // 숫자 또는 소문자가 아닌 문자를 모두 제거
        System.out.println(CharMatcher.JAVA_DIGIT.or(CharMatcher.JAVA_LOWER_CASE).retainFrom("mahesh123"));
    }
}

컴파일 및 실행

다음과 같이 javac 컴파일러를 사용하여 클래스를 컴파일합니다.

C:\Guava>javac GuavaTester.java

컴파일이 완료되면 다음 명령으로 GuavaTester를 실행합니다.

C:\Guava>java GuavaTester

실행 결과

위 프로그램을 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

123
Mahesh Parashar
mahesh***
mahesh123

첫 번째 줄은 숫자만 남긴 결과, 두 번째 줄은 양 끝 공백이 제거되고 공백이 정리된 결과, 세 번째 줄은 숫자가 별표(*)로 치환된 결과, 네 번째 줄은 숫자와 소문자만 유지된 결과입니다. 이처럼 CharMatcher를 활용하면 복잡한 문자열 처리 로직을 몇 줄의 코드로 손쉽게 구현할 수 있습니다.