java 过滤微信昵称_java过滤微信昵称emoji表情与非emoji的问题解决方法
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 过滤emoji表情与非emoji表情
* @author hsw
*
*/
public class EmojiFilter {
/**
* 检测是否有emoji字符
* @param source 需要判断的字符串
* @return 一旦含有就抛出
*/
public static boolean containsEmoji(String source) {
int len = source.length();
for (int i = 0; i < len; i++) {
char codePoint = source.charAt(i);
if (!notisEmojiCharacter(codePoint)) {
//判断确认有表情字符
return true;
}
}
return false;
}
/**
* 非emoji表情字符判断
* @param codePoint
* @return
*/
private static boolean notisEmojiCharacter(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;//该buf保存非emoji的字符
int len = source.length();
for (int i = 0; i < len; i++) {
char codePoint = source.charAt(i);
if (notisEmojiCharacter(codePoint)) {
if (buf == null) {
buf = new StringBuilder(source.length());
}
buf.append(codePoint);
}
}
if (buf == null) {
return "";//如果没有找到非emoji的字符,则返回无内容的字符串
} else {
if (buf.length() == len) {
buf = null;
return source;
} else {
return buf.toString();
}
}
}
}
java 过滤微信昵称_java过滤微信昵称emoji表情与非emoji的问题解决方法相关推荐
- java 微信请求_Java web微信请求拦截器(微信公众号开发)
Java web微信请求拦截器(微信公众号开发),获取微信用户信息. package com.mvc.interceptor; import com.alibaba.fastjson.JSONObje ...
- mysql 过滤emoji表情_MySQL中emoji表情过滤
问题描述 最近在对线上排错过程中发现很多入库时产生的错误日志,表现形态如下 Incorrectstringvalue:'\xF0\x9F\x91\x8D\xE6\x94...'forcolumn'co ...
- Java | MySQL Emoji表情写入数据库时报错问题解决,Incorrect string value: ‘\xF0\x9F\x98\x84\xF0\x9F...‘ for column
现象: 将Emoji表情存入数据库时,报如下错误: Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x99\x83\xF ...
- maven java版本过低_maven项目编译运行时提示jdk版本过低问题解决方法
明明使用的是1.8jdk,但是运行项目时提示使用的是java版本是1.5,版本过低. 修改pom.xml,添加如下: maven-compiler-plugin 3.6.1 1.8 1.8 UTF-8 ...
- java微信机器人_Java版微信机器人代码
Java版微信机器人代码 (2014-07-31 09:47:58) 标签: 软件测试 java 上海泽众软件 package com.eiyoung.wechat.web.controller; i ...
- java rmi 推送_java 企业微信推送消息 示例源码
[实例简介] [实例截图] [核心代码] package com.kp.qy.web; import java.io.UnsupportedEncodingException; import java ...
- java 微信模板_java开发微信模板消息推送
概述 微信公众平台开始支持前端网页,大家可能看到很多网页上都有分享到朋友圈,关注微信等按钮,点击它们都会弹出一个窗口让你分享和关注,这个是怎么实现的呢?今天就给大家讲解下如何在微信公众平台前端网页上添 ...
- java 创建自定义菜单_Java实现微信公众号自定义菜单的创建方法示例
本文实例讲述了Java实现微信公众号自定义菜单的创建方法.分享给大家供大家参考,具体如下: 开发公众号的时候可能需要给一些自定义菜单添加事件,比如点击某菜单然后服务端给用户推送信息. 我们也可以使用微 ...
- JAVA 实现朋友圈_Java实现微信公众平台朋友圈分享功能详细代码
其实分享的方法在微信官网有较为详细的文档说明,现就其中一些比较绕的步骤进行总结,有问题随时交流哈. 首先微信其实已经自带分享到朋友圈,朋友,qq空间等功能,对于开发微信专门提供了一个接口,可以根据需要 ...
最新文章
- 掩码语言模型(Masked Language Model)mlm
- 计算机主键盘的布局,计算机键盘的布局,结构和布置
- Java 开发提升十倍生产力:idea 远程一键部署 springboot 到 Docker
- python整数与IP地址转换
- 【中级软考】软件质量模型的六大特性27个子特性(软件质量特性:功能性、可靠性、易用性、效率性、软件维护性、软件可移植性)
- 空间数据引擎oracle_GIS 与Oracle 数据库空间数据格式的转换
- java虚拟机源码怎么看_java虚拟机JVM第4讲:从源代码到机器码,发生了什么?
- java学习(116):arraylist集合实现类
- c语言3368题目,电大《C语言程序设计课程》期末考试复习资料
- 学历影响程序员的工资吗?
- 运用incremental backup恢复归档GAP的DG-上篇
- C++11多线程std::thread的简单使用
- 诺基亚java软件下载_诺基亚手机安装JAVA软件程序
- java课程 数独 文库_数独教案-完整版
- CSAPP 第三版 第六章 家庭作业and so on
- Unity3D之太空大战一
- 基于数据分析,是否自动档汽车比手动挡更耗油
- Intel 处理器模型
- 网易资深安卓架构师:2021年Android常见面试题,面试必问
- 记录:页面锚定 点击a标签进行锚定到指定的ID