[Java] 이모지(Emoji) 제거하기

    이모지(Emoji)는 웹페이지나 어플리케이션 같은 곳에서 감정이나 아이디어를 표현하는데 사용되는 작은 그림이나 아이콘입니다. 일본에서 개발되었으며 전 세계적으로 널리 사용되고 있습니다. 이모지는 웃는 얼굴, 눈물 흘리는 얼굴, 동물, 식물, 날씨 현상, 심볼 등 다양한 사물이나 감정을 표현하며 텍스트 대화에서 감정을 전달하는 데 유용합니다.

     

    이모지는 유니코드 표준의 일부로, 다양한 디지털 플랫폼과 운영 체제에서 공통으로 인식하고 표현할 수 있습니다. 이모지는 텍스트 기반의 커뮤니케이션을 더 풍부하고 즐겁게 만드는 동시에, 문맥에 따라 다르게 해석될 수 있는 문제도 갖고 있습니다.

     

    [Java] 이모지(Emoji) 제거하기


    이모지는 위의 설명과 같이 유니코드(Unicode) 표준의 일부입니다. 이모지를 만들기 위해서 여러개의 유니코드가 필요하며, 유니코드를 제어할 수 있다면 이모지를 제거할 수 있다는 말입니다.

     

    이모지 포함 내용

    안녕하세요😀 저는 로보트🤖를 좋아합니다

     

    위와 같은 내용들이 있다고 가정을 해보겠습니다. 이모지는 유니코드로 구성이 되어 있기 때문에 특정 범위의 유니코드를 지우면 이모지를 제거할 수 있습니다.

     

    이모지 제거 코드

    public String removeEmojis(String source) {
        String regexEmojis = "[\uD83C-\uDBFF\uDC00-\uDFFF]+";
    
        // 이모지 제거
        String result = source.replaceAll(regexEmojis, "");
        return result;
    }

     

    일단 위 내용은 이모지를 제거하는 메소드입니다. 정규화를 통해서 제거를 하며, 이모지의 시작 유니코드와 다음 유니코드를 조합하여 이모지가 만들어지게 되는데 위 정규화 내용은 2개의 유니코드의 범위를 지정합니다.

     

    최종 예시 코드

    public class Test {
    
        public static void main(String[] args) {
            String document = "안녕하세요😀 저는 로보트🤖를 좋아합니다";
            System.out.println(document);
            System.out.println(removeEmojis(document));
        }
    
        public static String removeEmojis(String source) {
            String regexEmojis = "[\uD83C-\uDBFF\uDC00-\uDFFF]+";
    
            // 이모지 제거
            String result = source.replaceAll(regexEmojis, "");
            return result;
        }
    }

     

    최종 결과

    안녕하세요😀 저는 로보트🤖를 좋아합니다
    안녕하세요 저는 로보트를 좋아합니다
    반응형

    댓글

    Designed by JB FACTORY