java判断是否是emoji字符(史上最全)

int codePoint = Character.codePointAt(chars, i);
//使用charcode而不是直接用char是因为有些字符需要两个char来表示 lowsurragate  highsurrgate
isEmojiCharacter(codePoint);

 public static boolean isEmojiCharacter(int codePoint) {
        return (0x0080<=codePoint&&codePoint<=0x02AF)||
                (0x0300<=codePoint&&codePoint<=0x03FF)||
                (0x0600<=codePoint&&codePoint<=0x06FF)||
                (0x0C00<=codePoint&&codePoint<=0x0C7F)||
                (0x1DC0<=codePoint&&codePoint<=0x1DFF)||
                (0x1E00<=codePoint&&codePoint<=0x1EFF)||
                (0x2000<=codePoint&&codePoint<=0x209F)||
                (0x20D0<=codePoint&&codePoint<=0x214F)||
                (0x2190<=codePoint&&codePoint<=0x23FF)||
                (0x2460<=codePoint&&codePoint<=0x25FF)||
                (0x2600<=codePoint&&codePoint<=0x27EF)||
                (0x2900<=codePoint&&codePoint<=0x29FF)||
                (0x2B00<=codePoint&&codePoint<=0x2BFF)||
                (0x2C60<=codePoint&&codePoint<=0x2C7F)||
                (0x2E00<=codePoint&&codePoint<=0x2E7F)||
                (0xA490<=codePoint&&codePoint<=0xA4CF)||
                (0xE000<=codePoint&&codePoint<=0xF8FF)||
                (0xFE00<=codePoint&&codePoint<=0xFE0F)||
                (0xFE30<=codePoint&&codePoint<=0xFE4F)||
                (0x1F000<=codePoint&&codePoint<=0x1F02F)||
                (0x1F0A0<=codePoint&&codePoint<=0x1F0FF)||
                (0x1F100<=codePoint&&codePoint<=0x1F64F)||
                (0x1F680<=codePoint&&codePoint<=0x1F6FF)||
                (0x1F910<=codePoint&&codePoint<=0x1F96B)||
                (0x1F980<=codePoint&&codePoint<=0x1F9E0);


    }

参考链接:
https://apps.timwhitlock.info/emoji/tables/unicode
http://unicode.org/emoji/charts/emoji-versions.html
https://zh.wikipedia.org/wiki/UTF-16

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值