public class EmojiFilter
{

/**
     * 检测是否有emoji字符
     * @param source
     * @return FALSE,包含图片
     */
    public static boolean containsEmoji(String source)
    {
        if (source.equals(""))
        {
            return false;
        }
        
        int len = source.length();
        
        for (int i = 0; i < len; i++)
        {
            char codePoint = source.charAt(i);
            
            if (isEmojiCharacter(codePoint))
            {
                //do nothing,判断到了这里表明,确认有表情字符
                return true;
            }
        }
        
        return false;
    }

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));
    }
    
    /**
     * 过滤emoji 或者 其他非文字类型的字符
     * @param source
     * @return
     */
    public static String filterEmoji(String source)
    {
        
        if (!containsEmoji(source))
        {
            return source;//如果不包含,直接返回
        }
        //到这里铁定包含
        StringBuilder buf = null;
        
        int len = source.length();
        
        for (int i = 0; i < len; i++)
        {
            char codePoint = source.charAt(i);
            
            if (isEmojiCharacter(codePoint))
            {
                if (buf == null)
                {
                    buf = new StringBuilder(source.length());
                }
                
                buf.append(codePoint);
            } else
            {
            }
        }
        
        if (buf == null)
        {
            return source;//如果没有找到 emoji表情,则返回源字符串
        }
        else
        {
            if (buf.length() == len)
            {
                //这里的意义在于尽可能少的toString,因为会重新生成字符串
                buf = null;
                return source;
            } else
            {
                return buf.toString();
            }
        }
        
    }
}

android判断字符中是否包含表情符相关推荐

  1. uniapp 判断字符串中是否包含表情

    var emouji = /\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g;if(emouji.test('需要被判断的字符串')){console.log ...

  2. java 判断字符串中是否包含emoj表情及过滤

    java 判断字符串中是否包含emoj表情及过滤 package com.luo.dtqjh.utils;import org.apache.commons.lang.StringUtils;publ ...

  3. 判断字符串中是否包含指定字符(JavaScript)

    判断字符串中是否包含指定字符 indexOf() indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置.如果要检索的字符串值没有出现,则返回 -1. search() search( ...

  4. 判断字符串中是否包含Emoji表情代码

    判断字符串中是否包含Emoji表情代码: + (BOOL)stringContainsEmoji:(NSString *)string { __block BOOL returnValue = NO; ...

  5. 2021-12-27 Java String contains() 方法用于判断字符串中是否包含指定的字符或字符串。用.toLowerCase().contains忽视大小写。

    一.public boolean contains(CharSequence chars) contains() 方法用于判断字符串中是否包含指定的字符或字符串. 二.返回值        如果包含指 ...

  6. java判断字符串中是否包含某个字符

    1 使用String类的contains()方法 contains()方法用于判断字符串中是否包含指定的字符或字符串.语法如下: public boolean contains(CharSequenc ...

  7. 判断字符是否是字母java,java判断字符串中是否包含字母

    1.java代码判断字符串中是否包含字母: 思路:使用正则表达式的来验证 1.1示例代码如下: /** * 该方法主要使用正则表达式来判断字符串中是否包含字母 * @author fenggaopan ...

  8. php emoji表情,PHP处理字符中的emoji表情

    业务场景,开发的小程序和APP需要类似朋友圈一样的功能,然后好多客户都需要发带emoji表情的文字 所以,这里说一下php如何处理字符中的emoji表情 utf-8 编码的 emoji 表情或者某些特 ...

  9. java判断字符串中是否包含中文 过滤中文

    package com.test;import java.util.regex.Matcher; import java.util.regex.Pattern;public class Test {@ ...

最新文章

  1. 使用SVN+Axure RP 8.0创建团队项目
  2. Skywalking 结束孵化,成为 Apache 基金会顶级项目
  3. Windows 10配置VS Code C++环境(超详细,面向小白以及大佬们)
  4. Visual Studio 2017常见用法及相关配置
  5. 海思视频监控芯片如何一步步成为行业霸主
  6. DirectX11学习笔记五 摄像机类
  7. java解惑--谜题11:最后的笑声
  8. 使用ApachePOI复制pptx文件模板的幻灯片
  9. 瑞星客户端卸载操作手册
  10. java qq验证_用Java代码来校验QQ号
  11. windows10系统自带linux子系统(WSL)的安装目录
  12. 傻妞对接TG/监控变量国内国外机视频教程 6.16
  13. 浙大PTA数据结构与算法题目集(中文)题解集复习用
  14. 软考——程序设计语言概述
  15. vue集成汉字转拼音并提取首字母(附多音字解决方案)
  16. SolrCloud部署和使用手册
  17. 【JS】DOM事件模型
  18. 求解某项目的关键路径和总工期
  19. python毕业设计作品基于django框架 电影院购票选座系统毕设成品(7)中期检查报告
  20. html导航栏固定在顶部(定位-position)

热门文章

  1. CSDN上Android与IPhone开发博客精选
  2. Word/WPS文档中缩小行距
  3. Java基础-22总结登录注册IO版,数据操作流,内存操作流,打印流,标准输入输出流,转换流,随机访问流,合并流,序列化流,Properties...
  4. linux cp命令复制整个文件夹
  5. SQL经典短小代码收集
  6. maven.类包冲突解决案例
  7. tinymce上传图片php,图片文件上传
  8. 小福利,python内置map函数和lambda函数运用
  9. 第一周礼拜四 神藉着祂的众仆人行事(上)
  10. 菜鸟Axios学习=官网