All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.hutool.extra.emoji.EmojiUtil Maven / Gradle / Ivy

The newest version!
package cn.hutool.extra.emoji;

import com.vdurmont.emoji.Emoji;
import com.vdurmont.emoji.EmojiManager;
import com.vdurmont.emoji.EmojiParser;
import com.vdurmont.emoji.EmojiParser.FitzpatrickAction;

import java.util.List;
import java.util.Set;

/**
 * 基于https://github.com/vdurmont/emoji-java的Emoji表情工具类
 * 

* emoji-java文档以及别名列表见:https://github.com/vdurmont/emoji-java * * @author looly * @since 4.2.1 */ public class EmojiUtil { /** * 是否为Emoji表情的Unicode符 * * @param str 被测试的字符串 * @return 是否为Emoji表情的Unicode符 */ public static boolean isEmoji(String str) { return EmojiManager.isEmoji(str); } /** * 是否包含Emoji表情的Unicode符 * * @param str 被测试的字符串 * @return 是否包含Emoji表情的Unicode符 * @since 4.5.11 */ public static boolean containsEmoji(String str) { return EmojiManager.containsEmoji(str); } /** * 通过tag方式获取对应的所有Emoji表情 * * @param tag tag标签,例如“happy” * @return Emoji表情集合,如果找不到返回null */ public static Set getByTag(String tag) { return EmojiManager.getForTag(tag); } /** * 通过别名获取Emoji * * @param alias 别名,例如“smile” * @return Emoji对象,如果找不到返回null */ public static Emoji get(String alias) { return EmojiManager.getForAlias(alias); } /** * 将子串中的Emoji别名(两个":"包围的格式)和其HTML表示形式替换为为Unicode Emoji符号 *

* 例如: * *

	 *  :smile:  替换为 😄
	 * 😄 替换为 😄
	 * :boy|type_6: 替换为 👦🏿
	 * 
* * @param str 包含Emoji别名或者HTML表现形式的字符串 * @return 替换后的字符串 */ public static String toUnicode(String str) { return EmojiParser.parseToUnicode(str); } /** * 将字符串中的Unicode Emoji字符转换为别名表现形式(两个":"包围的格式) *

* 例如: 😄 转换为 :smile: * *

* {@link FitzpatrickAction}参数被设置为{@link FitzpatrickAction#PARSE},则别名后会增加"|"并追加fitzpatrick类型 *

* 例如:👦🏿 转换为 :boy|type_6: * *

* {@link FitzpatrickAction}参数被设置为{@link FitzpatrickAction#REMOVE},则别名后的"|"和类型将被去除 *

* 例如:👦🏿 转换为 :boy: * *

* {@link FitzpatrickAction}参数被设置为{@link FitzpatrickAction#IGNORE},则别名后的类型将被忽略 *

* 例如:👦🏿 转换为 :boy:🏿 * * @param str 包含Emoji Unicode字符的字符串 * @return 替换后的字符串 */ public static String toAlias(String str) { return toAlias(str, FitzpatrickAction.PARSE); } /** * 将字符串中的Unicode Emoji字符转换为别名表现形式(两个":"包围的格式),别名后会增加"|"并追加fitzpatrick类型 *

* 例如:👦🏿 转换为 :boy|type_6: * * @param str 包含Emoji Unicode字符的字符串 * @param fitzpatrickAction {@link FitzpatrickAction} * @return 替换后的字符串 */ public static String toAlias(String str, FitzpatrickAction fitzpatrickAction) { return EmojiParser.parseToAliases(str, fitzpatrickAction); } /** * 将字符串中的Unicode Emoji字符转换为HTML 16进制表现形式 *

* 例如:👦🏿 转换为 👦 * * @param str 包含Emoji Unicode字符的字符串 * @return 替换后的字符串 */ public static String toHtmlHex(String str) { return toHtml(str, true); } /** * 将字符串中的Unicode Emoji字符转换为HTML表现形式(Hex方式) *

* 例如:👦🏿 转换为 👦 * * @param str 包含Emoji Unicode字符的字符串 * @return 替换后的字符串 */ public static String toHtml(String str) { return toHtml(str, false); } /** * 将字符串中的Unicode Emoji字符转换为HTML表现形式,例如: *

	 * 如果为hex形式,👦🏿 转换为 👦
	 * 否则,👦🏿 转换为 👦
	 * 
* * @param str 包含Emoji Unicode字符的字符串 * @param isHex 是否hex形式 * @return 替换后的字符串 * @since 5.7.21 */ public static String toHtml(String str, boolean isHex) { return isHex ? EmojiParser.parseToHtmlHexadecimal(str) : EmojiParser.parseToHtmlDecimal(str); } /** * 去除字符串中所有的Emoji Unicode字符 * * @param str 包含Emoji字符的字符串 * @return 替换后的字符串 */ public static String removeAllEmojis(String str) { return EmojiParser.removeAllEmojis(str); } /** * 提取字符串中所有的Emoji Unicode * * @param str 包含Emoji字符的字符串 * @return Emoji字符列表 */ public static List extractEmojis(String str) { return EmojiParser.extractEmojis(str); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy