4
回答
求一段过滤emoji表情的java代码
终于搞明白,存储TCO原来是这样算的>>>   

求一段过滤emoji表情的java代码

<无标签>
举报
郑浩锋
发帖于2周前 4回/132阅
共有4个答案 最后回答: 2周前

百度一下就有了啊:  这里是吧emoji转换成大括号拼接字符串,你直接改成“” 就好咯

/**
 * 将系统表情转化为字符串
 *
 * @param s
 * @return
 */
public static String getString(String s) {
    int length = s.length();
    String context = "";
    //循环遍历字符串,将字符串拆分为一个一个字符
    for (int i = 0; i < length; i++) {
        char codePoint = s.charAt(i);
        //判断字符是否是emoji表情的字符
        if (isEmojiCharacter(codePoint)) {
            //如果是将以大括号括起来
            String emoji = "{" + Integer.toHexString(codePoint) + "}";
            context = context + emoji;
            continue;
        }
        context = context + codePoint;
    }
    return context;
}

/**
 * 是否包含表情
 *
 * @param codePoint
 * @return 如果不包含 返回false,包含 则返回true
 */

private static boolean isEmojiCharacter(char codePoint) {
    return !((codePoint == 0x0) || (codePoint == 0x9) || (codePoint == 0xA)
            || (codePoint == 0xD)
            || ((codePoint >= 0x20) && (codePoint <= 0xD7FF))
            || ((codePoint >= 0xE000) && (codePoint <= 0xFFFD))
            || ((codePoint >= 0x10000) && (codePoint <= 0x10FFFF)));
}
--- 共有 1 条评论 ---
国栋这段代码有很大问题吧 2周前 回复

我的理解,emoji 一般它们的 unicode codePoint 都是大于 U+FFFF,但不是说大于 U+FFFF 的都是 emoji。emoji 在 unicode 中是否有一段确切的范围需要去 unicode 官网查查才知道。

顶部