The missing emoji library for java.
emoji-java is a lightweight java library that helps you use Emojis in your java applications.
<dependency>
<groupId>com.vdurmont</groupId>
<artifactId>emoji-java</artifactId>
<version>5.1.1</version>
</dependency>
You can also download the project, build it with mvn clean install and add the generated jar to your buildpath.
compile 'com.vdurmont:emoji-java:5.1.1'
The EmojiManager provides several static methods to search through the emojis database:
getForTag returns all the emojis for a given taggetForAlias returns the emoji for an aliasgetAll returns all the emojisisEmoji checks if a string is an emojicontainsEmoji checks if a string contains any emojiYou can also query the metadata:
getAllTags returns the available tagsOr get everything:
getAll returns all the emojisAn Emoji is a POJO (plain old java object), which provides the following methods:
getUnicode returns the unicode representation of the emojigetUnicode(Fitzpatrick) returns the unicode representation of the emoji with the provided Fitzpatrick modifier. If the emoji doesn't support the Fitzpatrick modifiers, this method will throw an UnsupportedOperationException. If the provided Fitzpatrick is null, this method will return the unicode of the emoji.getDescription returns the (optional) description of the emojigetAliases returns a list of aliases for this emojigetTags returns a list of tags for this emojigetHtmlDecimal returns an html decimal representation of the emojigetHtmlHexadecimal returns an html decimal representation of the emojisupportsFitzpatrick returns true if the emoji supports the Fitzpatrick modifiers, else falseSome emojis now support the use of Fitzpatrick modifiers that gives the choice between 5 shades of skin tones:
| Modifier | Type |
|---|---|
| 🏻 | type_1_2 |
| 🏼 | type_3 |
| 🏽 | type_4 |
| 🏾 | type_5 |
| 🏿 | type_6 |
We defined the format of the aliases including a Fitzpatrick modifier as:
:ALIAS|TYPE:
A few examples:
:boy|type_1_2:
:swimmer|type_4:
:santa|type_6:
To replace all the aliases and the html representations found in a string by their unicode, use EmojiParser#parseToUnicode(String).
For example:
String str = "An :grinning:awesome :smiley:string 😄with a few :wink:emojis!";
String result = EmojiParser.parseToUnicode(str);
System.out.println(result);
// Prints:
// "An 😀awesome 😃string 😄with a few 😉emojis!"
To replace all the emoji's unicodes found in a string by their aliases, use EmojiParser#parseToAliases(String).
For example:
String str = "An 😀awesome 😃string with a few 😉emojis!";
String result = EmojiParser.parseToAliases(str);
System.out.println(result);
// Prints:
// "An :grinning:awesome :smiley:string with a few :wink:emojis!"
By default, the aliases will parse and include any Fitzpatrick modifier that would be provided. If you want to remove or ignore the Fitzpatrick modifiers, use EmojiParser#parseToAliases(String, FitzpatrickAction). Examples:
String str = "Here is a boy: \uD83D\uDC66\uD83C\uDFFF!";
System.out.println(EmojiParser.parseToAliases(str));
System.out.println(EmojiParser.parseToAliases(str, FitzpatrickAction.PARSE));
// Prints twice: "Here is a boy: :boy|type_6:!"
System.out.println(EmojiParser.parseToAliases(str, FitzpatrickAction.REMOVE));
// Prints: "Here is a boy: :boy:!"
System.out.println(EmojiParser.parseToAliases(str, FitzpatrickAction.IGNORE));
// Prints: "Here is a boy: :boy:🏿!"
To replace all the emoji's unicodes found in a string by their html representation, use EmojiParser#parseToHtmlDecimal(String) or EmojiParser#parseToHtmlHexadecimal(String).
For example:
String str = "An 😀awesome 😃string with a few 😉emojis!";
String resultDecimal = EmojiParser.parseToHtmlDecimal(str);
System.out.println(resultDecimal);
// Prints:
// "An 😀awesome 😃string with a few 😉emojis!"
String resultHexadecimal = EmojiParser.parseToHtmlHexadecimal(str);
System.out.println(resultHexadecimal);
// Prints:
// "An 😀awesome 😃string with a few 😉emojis!"
By default, any Fitzpatrick modifier will be removed. If you want to ignore the Fitzpatrick modifiers, use EmojiParser#parseToAliases(String, FitzpatrickAction). Examples:
String str = "Here is a boy: \uD83D\uDC66\uD83C\uDFFF!";
System.out.println(EmojiParser.parseToHtmlDecimal(str));
System.out.println(EmojiParser.parseToHtmlDecimal(str, FitzpatrickAction.PARSE));
System.out.println(EmojiParser.parseToHtmlDecimal(str, FitzpatrickAction.REMOVE));
// Print 3 times: "Here is a boy: 👦!"
System.out.println(EmojiParser.parseToHtmlDecimal(str, FitzpatrickAction.IGNORE));
// Prints: "Here is a boy: 👦🏿!"
The same applies for the methods EmojiParser#parseToHtmlHexadecimal(String) and EmojiParser#parseToHtmlHexadecimal(String, FitzpatrickAction).
You can easily remove emojis from a string using one of the following methods:
EmojiParser#removeAllEmojis(String): removes all the emojis from the StringEmojiParser#removeAllEmojisExcept(String, Collection<Emoji>): removes all the emojis from the String, except the ones in the CollectionEmojiParser#removeEmojis(String, Collection<Emoji>): removes the emojis in the Collection from the StringFor example:
String str = "An 😀awesome 😃string with a few 😉emojis!";
Collection<Emoji> collection = new ArrayList<Emoji>();
collection.add(EmojiManager.getForAlias("wink")); // This is 😉
System.out.println(EmojiParser.removeAllEmojis(str));
System.out.println(EmojiParser.removeAllEmojisExcept(str, collection));
System.out.println(EmojiParser.removeEmojis(str, collection));
// Prints:
// "An awesome string with a few emojis!"
// "An awesome string with a few 😉emojis!"
// "An 😀awesome 😃string with a few emojis!"
You can search a string of mixed emoji/non-emoji characters and have all of the emoji characters returned as a Collection.
EmojiParser#extractEmojis(String): returns all emojis as a Collection. This will include duplicates if emojis are present more than once.emoji-java originally used the data provided by the github/gemoji project. It is still based on it but has evolved since.
See a table of the available emojis and their aliases HERE.
394 followers · starred Aug 2016
57 followers · starred Mar 2018
136 followers · starred Jan 2017
3,474 followers · starred Apr 2016
The missing emoji library for java.
emoji-java is a lightweight java library that helps you use Emojis in your java applications.
<dependency>
<groupId>com.vdurmont</groupId>
<artifactId>emoji-java</artifactId>
<version>5.1.1</version>
</dependency>
You can also download the project, build it with mvn clean install and add the generated jar to your buildpath.
compile 'com.vdurmont:emoji-java:5.1.1'
The EmojiManager provides several static methods to search through the emojis database:
getForTag returns all the emojis for a given taggetForAlias returns the emoji for an aliasgetAll returns all the emojisisEmoji checks if a string is an emojicontainsEmoji checks if a string contains any emojiYou can also query the metadata:
getAllTags returns the available tagsOr get everything:
getAll returns all the emojisAn Emoji is a POJO (plain old java object), which provides the following methods:
getUnicode returns the unicode representation of the emojigetUnicode(Fitzpatrick) returns the unicode representation of the emoji with the provided Fitzpatrick modifier. If the emoji doesn't support the Fitzpatrick modifiers, this method will throw an UnsupportedOperationException. If the provided Fitzpatrick is null, this method will return the unicode of the emoji.getDescription returns the (optional) description of the emojigetAliases returns a list of aliases for this emojigetTags returns a list of tags for this emojigetHtmlDecimal returns an html decimal representation of the emojigetHtmlHexadecimal returns an html decimal representation of the emojisupportsFitzpatrick returns true if the emoji supports the Fitzpatrick modifiers, else falseSome emojis now support the use of Fitzpatrick modifiers that gives the choice between 5 shades of skin tones:
| Modifier | Type |
|---|---|
| 🏻 | type_1_2 |
| 🏼 | type_3 |
| 🏽 | type_4 |
| 🏾 | type_5 |
| 🏿 | type_6 |
We defined the format of the aliases including a Fitzpatrick modifier as:
:ALIAS|TYPE:
A few examples:
:boy|type_1_2:
:swimmer|type_4:
:santa|type_6:
To replace all the aliases and the html representations found in a string by their unicode, use EmojiParser#parseToUnicode(String).
For example:
String str = "An :grinning:awesome :smiley:string 😄with a few :wink:emojis!";
String result = EmojiParser.parseToUnicode(str);
System.out.println(result);
// Prints:
// "An 😀awesome 😃string 😄with a few 😉emojis!"
To replace all the emoji's unicodes found in a string by their aliases, use EmojiParser#parseToAliases(String).
For example:
String str = "An 😀awesome 😃string with a few 😉emojis!";
String result = EmojiParser.parseToAliases(str);
System.out.println(result);
// Prints:
// "An :grinning:awesome :smiley:string with a few :wink:emojis!"
By default, the aliases will parse and include any Fitzpatrick modifier that would be provided. If you want to remove or ignore the Fitzpatrick modifiers, use EmojiParser#parseToAliases(String, FitzpatrickAction). Examples:
String str = "Here is a boy: \uD83D\uDC66\uD83C\uDFFF!";
System.out.println(EmojiParser.parseToAliases(str));
System.out.println(EmojiParser.parseToAliases(str, FitzpatrickAction.PARSE));
// Prints twice: "Here is a boy: :boy|type_6:!"
System.out.println(EmojiParser.parseToAliases(str, FitzpatrickAction.REMOVE));
// Prints: "Here is a boy: :boy:!"
System.out.println(EmojiParser.parseToAliases(str, FitzpatrickAction.IGNORE));
// Prints: "Here is a boy: :boy:🏿!"
To replace all the emoji's unicodes found in a string by their html representation, use EmojiParser#parseToHtmlDecimal(String) or EmojiParser#parseToHtmlHexadecimal(String).
For example:
String str = "An 😀awesome 😃string with a few 😉emojis!";
String resultDecimal = EmojiParser.parseToHtmlDecimal(str);
System.out.println(resultDecimal);
// Prints:
// "An 😀awesome 😃string with a few 😉emojis!"
String resultHexadecimal = EmojiParser.parseToHtmlHexadecimal(str);
System.out.println(resultHexadecimal);
// Prints:
// "An 😀awesome 😃string with a few 😉emojis!"
By default, any Fitzpatrick modifier will be removed. If you want to ignore the Fitzpatrick modifiers, use EmojiParser#parseToAliases(String, FitzpatrickAction). Examples:
String str = "Here is a boy: \uD83D\uDC66\uD83C\uDFFF!";
System.out.println(EmojiParser.parseToHtmlDecimal(str));
System.out.println(EmojiParser.parseToHtmlDecimal(str, FitzpatrickAction.PARSE));
System.out.println(EmojiParser.parseToHtmlDecimal(str, FitzpatrickAction.REMOVE));
// Print 3 times: "Here is a boy: 👦!"
System.out.println(EmojiParser.parseToHtmlDecimal(str, FitzpatrickAction.IGNORE));
// Prints: "Here is a boy: 👦🏿!"
The same applies for the methods EmojiParser#parseToHtmlHexadecimal(String) and EmojiParser#parseToHtmlHexadecimal(String, FitzpatrickAction).
You can easily remove emojis from a string using one of the following methods:
EmojiParser#removeAllEmojis(String): removes all the emojis from the StringEmojiParser#removeAllEmojisExcept(String, Collection<Emoji>): removes all the emojis from the String, except the ones in the CollectionEmojiParser#removeEmojis(String, Collection<Emoji>): removes the emojis in the Collection from the StringFor example:
String str = "An 😀awesome 😃string with a few 😉emojis!";
Collection<Emoji> collection = new ArrayList<Emoji>();
collection.add(EmojiManager.getForAlias("wink")); // This is 😉
System.out.println(EmojiParser.removeAllEmojis(str));
System.out.println(EmojiParser.removeAllEmojisExcept(str, collection));
System.out.println(EmojiParser.removeEmojis(str, collection));
// Prints:
// "An awesome string with a few emojis!"
// "An awesome string with a few 😉emojis!"
// "An 😀awesome 😃string with a few emojis!"
You can search a string of mixed emoji/non-emoji characters and have all of the emoji characters returned as a Collection.
EmojiParser#extractEmojis(String): returns all emojis as a Collection. This will include duplicates if emojis are present more than once.emoji-java originally used the data provided by the github/gemoji project. It is still based on it but has evolved since.
See a table of the available emojis and their aliases HERE.
394 followers · starred Aug 2016
57 followers · starred Mar 2018
136 followers · starred Jan 2017
3,474 followers · starred Apr 2016