匿名处理

今天对用户名称进行匿名处理,但是用户名称中可能包含emoji表情符号,先附上匿名处理的方法

//1、用户+id正常显示;2、大于2个字,前后保留一个字,例如 小***吐;3、小与等于2个字,保留第一个字,例如 小***;
public static String anonymity(String name) {//用户名称为空,为用户+id,只有一个字不做处理直接返回if (StringUtils.isBlank(name) || name.matches("^用户[0-9]+$") || name.length() == 1) {return name;} else {//名称长度:将表情符号的长度视为1int length = name.codePointCount(0, name.length());if (length == 2) {//两个字后一个字匿名int start = name.offsetByCodePoints(0, 0);int end = name.offsetByCodePoints(0, 1);return name.substring(start, end) + "*";} else {//三个字或以上,匿名处理中间部分int start1 = name.offsetByCodePoints(0, 0);int end1 = name.offsetByCodePoints(0, 1);int start2 = name.offsetByCodePoints(0, length-1);int end2 = name.offsetByCodePoints(0, length);return name.substring(start1, end1) + "***" + name.substring(start2, end2);}}
}

emoji表情符号过滤

//替换String中的表情符号为空
public String filterEmoji(String source) {if (StringUtils.isNotBlank(source)) {return source.replaceAll("[\\ud800\\udc00-\\udbff\\udfff\\ud800-\\udfff]", "");} else {return source;}
}

将emoji表情长度视为1,获取文本的长度

//source为文本,名称长度:将表情符号的长度视为1
int length = source.codePointCount(0, source.length());

截取一个第一个位置的emoji表情符

//name为文本,将表情符号的长度视为1的文本长度
int length = name.codePointCount(0, name.length());
//两个字后一个匿名
int start = name.offsetByCodePoints(0, 0);
int end = name.offsetByCodePoints(0, 1);
return name.substring(start, end) + "*";

判断文本中是否有emoji表情符

/*** 判断文本中是否有emoji表情符*/
public static boolean containsEmoji(String source) {int len = source.length();boolean isEmoji = false;for (int i = 0; i < len; i++) {char hs = source.charAt(i);if (0xd800 <= hs && hs <= 0xdbff) {if (source.length() > 1) {char ls = source.charAt(i + 1);int uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;if (0x1d000 <= uc && uc <= 0x1f77f) {return true;}}} else {// non surrogateif (0x2100 <= hs && hs <= 0x27ff && hs != 0x263b) {return true;} else if (0x2B05 <= hs && hs <= 0x2b07) {return true;} else if (0x2934 <= hs && hs <= 0x2935) {return true;} else if (0x3297 <= hs && hs <= 0x3299) {return true;} else if (hs == 0xa9 || hs == 0xae || hs == 0x303d|| hs == 0x3030 || hs == 0x2b55 || hs == 0x2b1c|| hs == 0x2b1b || hs == 0x2b50 || hs == 0x231a) {return true;}if (!isEmoji && source.length() > 1 && i < source.length() - 1) {char ls = source.charAt(i + 1);if (ls == 0x20e3) {return true;}}}}return isEmoji;
}

匿名处理和emoji表情符号处理相关推荐

  1. Emoji 表情符号是如何征服世界的

    AppNews 发布于 2年前 (2013-03-07) 分类:开发者新闻 阅读(29) 评论(0) 对互联网来说,Emoji表情某种程度上是一种身体语言. 美国科技博客The Verge近日对Emo ...

  2. Emoji表情符号录入MySQL数据库报错的解决方案

    2019独角兽企业重金招聘Python工程师标准>>> 前言:手机app应用评论的时候,恢复表情符号,提示失败. 1,查看tomcat后台日志,核心报错信息如下:   Caused ...

  3. [Python从零到壹] 三十七.图像处理基础篇之图像融合处理和ROI区域绘制

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  4. Emoji表情符号兼容方案(适用ios,android,wp等平台)

    http://blog.csdn.net/qdkfriend/article/details/7576524 Emoji表情符号兼容方案 一 什么是Emoji emoji就是表情符号:词义来自日语(え ...

  5. 阅读react-redux源码(五) - connectAdvanced中store改变的事件转发、ref的处理和pure模式的处理

    阅读react-redux源码 - 零 阅读react-redux源码 - 一 阅读react-redux源码(二) - createConnect.match函数的实现 阅读react-redux源 ...

  6. java 检测表情符号_hutool工具包:判断一个字符串中是否包含emoji表情符号(emoji-java)...

    需求: 判断一个字符串中是否包含emoji表情符号. 工具: hutool工具包,emoji-java工具包 cn.hutool hutool-all 5.3.7 com.vdurmont emoji ...

  7. mysql utf8 表情符号_MySQLutf8mb4字符集:支持emoji表情符号

    MySQL utf8mb4 字符集:支持 emoji 表情符号 首页 → 数据库技术 背景: 阅读新闻 MySQL utf8mb4 字符集:支持 emoji 表情符号 [日期:2013-05-16] ...

  8. 匹配表情emoji 正则_php正则表达式过滤emoji表情符号

    php正则表达式过滤emoji表情符号2017-08-23 21:41 现在中国有手机的人用微信的应该占了90%吧!小编没事的时候也是天天玩微信. 不过不是发朋友圈这些,而是上面有很多感兴趣的文章. ...

  9. 告别手动输入验证码!Web自动化测试带你解锁验证码处理和Cookie机制,跨越测试瓶颈!

    Web自动化之验证码处理及cookie机制 在Web自动化测试中,验证码的处理一直是一个难点.如果没有自动化处理方式,手动输入验证码将会非常耗时且容易出错.本文将为大家介绍如何通过Python实现验证 ...

最新文章

  1. React+Redux开发实录(一)搭建工程脚手架
  2. BZOJ 1968 [Ahoi2005]COMMON 约数研究
  3. 直播 | ACL 2021论文解读:基于对抗学习的事件抽取预训练模型
  4. 3D Human相关研究总结:人体、姿态估计、人体重建等
  5. 编写Eureka入门案例
  6. 中金所技术各部门介绍_【电视技术】液晶电视背光板各部分电路介绍
  7. SAP Commerce Cloud Backoffice CMS 里的内容一览
  8. 如何使用JSR107缓存注释
  9. vue进行判断使用class_vue判断dom的class
  10. html区域背景,保存/恢复HTML5 Canvas的背景区域
  11. QT C++ 百度智能云 人脸图像识别应用实例
  12. 新型智能搜索引擎,挑战google
  13. 手机12306买卧铺下铺技巧_12306网上购下铺技巧(亲历版)
  14. Xcode打包ipa的步骤
  15. conda install Python库时报PackagesNotFoundError:的错误的解决方案
  16. 【游戏客户端】制作节奏大师Like音游(全)
  17. 数模(13)---多元回归分析
  18. 挑战巨头,主打安全的Telegram、超信胜算几何?
  19. Word-embeding 【paper】
  20. php公众号向多个用户推送消息,如何实现微信公众号给指定互动用户推送多次消息?...

热门文章

  1. pc telnet 登录 android 系统
  2. html5 商品对比功能,页面/功能设计对比
  3. 《生活学习方法讨论课》开课说明和进度
  4. RPA分享--财务机器人风险与控制研究系列内容(一)
  5. 视觉设计 :汽车设计,平面设计与其他 - No.0 - 计划
  6. 在三角形中rt是什么意思_全等三角形中的字母Rt是什么意思
  7. 收藏一些好看的颜色代码
  8. aspen压缩因子_ASPEN重点学习的心得.doc
  9. 乐视电视的病毒式增速效应与“可怕”现象
  10. Marmoset Toolbag 3D 渲染软件