• 用net匹配并替换iOS标准的emoji表情符号


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespaceCommon
    {
        public static class EmojiFilter
        {
            /**
              * 检测是否有emoji字符
              * @param source
              * @return 一旦含有就抛出
              */
            public static Boolean containsEmoji(String source)
            {
                char[] item = source.ToCharArray();
                for (int i = 0; i < source.Length; i++)
                {
                    if (isEmojiCharacter(item[i]))
                        return true; //do nothing,判断到了这里表明,确认有表情字符
                }
                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;
                char[] item = source.ToCharArray();
                for (int i = 0; i < source.Length; i++)
                {
                    char codePoint = item[i];
                    if (isEmojiCharacter(codePoint))
                    {
                        if (buf == null)
                            buf = new StringBuilder(source.Length);
                        buf.Append(codePoint);
                    }
                }
                if (buf == null)
                    return source;//如果没有找到 emoji表情,则返回源字符串
                else
                {
                    if (buf.Length == source.Length)
                    {
                        buf = null;//这里的意义在于尽可能少的toString,因为会重新生成字符串
                        return source;
                    }
                    else
                        return buf.ToString();
                }
    
            }
        }
    }
    

      

  • 相关阅读:
    Python实现TCP服务端的并发
    python程序中的线程操作
    jmeter命令行执行脚本_动态参数设置
    App客户端性能测试点总结
    App功能测试点总结
    jmeter中生成UUID作为唯一标识符
    Python Unittest进行接口测试的简单示例
    jmeter接口测试中的用例数据分离
    博客园看板娘的简单添加
    (转)后端服务性能压测实践
  • 原文地址:https://www.cnblogs.com/webwang/p/netemoji.html
Copyright © 2020-2023  润新知