Java Character isEmoji() Method (Introduced in Java 21)

The Character.isEmoji() method, introduced in Java 21, is used to determine if a specified character is an emoji.

Table of Contents

  1. Introduction
  2. isEmoji() Method Syntax
  3. Examples
    • Checking If a Character Is an Emoji
    • Filtering Emojis from a String
    • Using in Conditional Statements
  4. Real-World Use Case
  5. Conclusion

Introduction

The Character.isEmoji() method is a static method in the Character class in Java. It checks whether a given character is classified as an emoji according to the Unicode Standard. This method is particularly useful when working with text containing emojis, such as in chat applications or social media platforms.

isEmoji()() Method Syntax

The syntax for the isEmoji() method is as follows:

public static boolean isEmoji(int codePoint)
  • codePoint: The Unicode code point of the character to be tested.

The method returns:

  • true if the character is an emoji.
  • false otherwise.

Examples

Checking If a Character Is an Emoji

The isEmoji() method can be used to check if a single character is an emoji.

Example

public class IsEmojiExample {
    public static void main(String[] args) {
        char emojiChar = '\uD83D'; // High surrogate of a two-part emoji
        char emojiChar2 = '\uDE00'; // Low surrogate of a two-part emoji

        int codePoint = Character.toCodePoint(emojiChar, emojiChar2);

        boolean isEmoji = Character.isEmoji(codePoint);

        System.out.println("Is the character an emoji? " + isEmoji);
    }
}

Output:

Is the character an emoji? true

In this example, the method returns true because the character sequence represents an emoji.

Filtering Emojis from a String

You can use the isEmoji() method to filter out all emojis from a string.

Example

public class FilterEmojisExample {
    public static void main(String[] args) {
        String input = "Hello 😊, how are you? 🌞";
        StringBuilder emojis = new StringBuilder();

        for (int i = 0; i < input.length(); ) {
            int codePoint = input.codePointAt(i);
            if (Character.isEmoji(codePoint)) {
                emojis.append(Character.toChars(codePoint));
            }
            i += Character.charCount(codePoint);
        }

        System.out.println("Emojis in the string: " + emojis.toString());
    }
}

Output:

Emojis in the string: 😊🌞

Using in Conditional Statements

The isEmoji() method can be useful in conditional statements for processing text containing emojis.

Example

public class ConditionalExample {
    public static void main(String[] args) {
        String input = "Welcome to Java! 😃";

        for (int i = 0; i < input.length(); ) {
            int codePoint = input.codePointAt(i);
            if (Character.isEmoji(codePoint)) {
                System.out.println("Found an emoji: " + Character.toChars(codePoint));
            } else {
                System.out.println("Non-emoji character: " + Character.toChars(codePoint));
            }
            i += Character.charCount(codePoint);
        }
    }
}

Output:

Non-emoji character: W
Non-emoji character: e
Non-emoji character: l
Non-emoji character: c
Non-emoji character: o
Non-emoji character: m
Non-emoji character: e
Non-emoji character:
Non-emoji character: t
Non-emoji character: o
Non-emoji character:
Non-emoji character: J
Non-emoji character: a
Non-emoji character: v
Non-emoji character: a
Non-emoji character: !
Non-emoji character:
Found an emoji: 😃

Real-World Use Case

Emoji Validation in User Input

In a real-world application, you might need to validate and process user input to detect and handle emojis.

Example

import java.util.Scanner;

public class EmojiValidationExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter a message: ");

        String input = scanner.nextLine();
        boolean containsEmoji = false;

        for (int i = 0; i < input.length(); ) {
            int codePoint = input.codePointAt(i);
            if (Character.isEmoji(codePoint)) {
                containsEmoji = true;
                break;
            }
            i += Character.charCount(codePoint);
        }

        if (containsEmoji) {
            System.out.println("Your message contains emojis.");
        } else {
            System.out.println("Your message does not contain any emojis.");
        }

        scanner.close();
    }
}

Output (example input "Hello 😊"):

Enter a message:
Hello 😊
Your message contains emojis.

Conclusion

The Character.isEmoji() method in Java is used for detecting emojis in text. By understanding how to use this method, you can efficiently handle text containing emojis in your Java applications. Whether you are checking individual characters, filtering emojis from a string, or validating user input, the isEmoji() method provides a reliable solution for these tasks.

Comments