java emoji问号_java过滤emoji字符
替换成问号: EmojiFilter.filterEmoji(str, “?”);
import org.apache.commons.lang3.StringUtils;
/**
* 表情符号替换
*/
public class EmojiFilter {
/**
* 检测是否有emoji字符
*
* @param source
* @return 一旦含有就抛出
*/
public static boolean containsEmoji(String source) {
if (StringUtils.isBlank(source)) {
return false;
}
int len = source.length();
for (int i = 0; i < len; i++) {
char codePoint = source.charAt(i);
if (!isNotEmojiCharacter(codePoint)) {
//判断到了这里表明,确认有表情字符
return true;
}
}
return false;
}
/**
* 判断是否为非Emoji字符
*
* @param codePoint 比较的单个字符
* @return
*/
private static boolean isNotEmojiCharacter(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
* @param replaceStr 替换的字符,为null的话只是简单的过滤
* @return
*/
public static String filterEmoji(String source, String replaceStr) {
if (StringUtils.isBlank(source)) {
return source;
}
if (!containsEmoji(source)) {
return source;//如果不包含,直接返回
}
StringBuilder buf = new StringBuilder(source.length());
int len = source.length();
for (int i = 0; i < len; i++) {
char codePoint = source.charAt(i);
if (isNotEmojiCharacter(codePoint)) {
buf.append(codePoint);
}else if (replaceStr!= null){
buf.append(replaceStr);
}
}
return buf.toString().trim();
}
}
java emoji问号_java过滤emoji字符相关推荐
- java emoji过滤_java过滤emoji表情
java手机端网页常用的过滤emoji表情,注意:过滤常规emoji表情,iso或安卓一些手机自带的特殊表情不在过滤范围 import java.util.regex.Matcher; import ...
- java emoji表情_java处理emoji表情的方法
最近项目中遇到emoji表情存储的问题,后来就在网上搜了很多, 总结出两种方法进行处理: 1.通过正则匹配进行过滤,代码如下: //emoji表情过滤 public static String fil ...
- java emoji 编码_Java对Emoji表情编码与解码
Java对Emoji表情编码与解码,使用到Java Emoji Converter . GitHub地址:https://github.com/binarywang/java-emoji-conver ...
- java存储字节_Java字节与字符流永久存储json数据
使用第三方json转换工具,阿里巴巴json转换工具Fastjson1.2.7. 注意:jar包的导入不再赘述,详见百度. User类,定义两种属性,并创建构造方法与get和set方法 public ...
- java 6字节_java过滤四字节和六字节特殊字符
java7版本中可以这样写: source.replaceAll("[\ud800\udc00-\udbff\udfff\ud800-\udfff]", "*" ...
- java 数据库 编码_Java 连接数据库及字符编码
通过JDBC方式连接MYSQL数据库: public static Connection getConnection(){ String username="root" ; Str ...
- java中文问号_java 中文转出来是问号怎么回事?有大神知道怎么改么?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.io.*;import java.net.URLEncoder;public class Example8_3 {public s ...
- java 变量 英文_Java中的字符类型变量无论是中文,英文还是数字,都是占4字节。...
[单选题]一辆公共汽车载有20名乘客向某车站驶来,假如车上每名乘客在该站下车的概率为1/4,且所有乘客在该站下车与否互不关联,则此辆公共汽车上有5名乘客在该站下车的概率约为( ). [单选题]新中国建 ...
- java 泛型 问号_Java中泛型 问号的作用
这是jdk1.5泛型的典型应用: 第一种写法,叫做使用泛型方法: public void thisIsT(List list){ //... } 当然还可以这样写: public void thisI ...
最新文章
- jetty作为内嵌服务器自启动
- Java对象的生命周期与作用域的讨论(转)
- java数据接口之链表_Java数据结构和算法之链表
- myjdbc链接数据库.增删改查
- java画布颜色切换_在本视频讲解演示中,扩展画布的目的是为了后面制作齿孔时操作起来方便,扩展部分更换了另一种颜色,是为了以示区别,能直观区分出票面部分。...
- SVN的搭建(入门篇)
- basys2数码管共阳还是共阴_如何判断PLC使用接近开关是PNP还是NPN?
- Spark源码分析之Spark Shell(下)
- Golang的基础数据类型
- amoeba mysql读写分离_MySQL和Amoeba实现同步读写分离centos7
- 第十一次 Java作业
- 你办培训机构还不知道教育培训管理系统?
- 【学习笔记】特殊数论函数求和
- 【分享】pushplus入驻集简云平台,实现无代码集成数百款应用
- 从 RGB 到 HSV 的转换详细介绍
- 经典题:用Java打印空心菱形
- 数据库系统-关系代数
- tensorflow2的checkpoint恢复训练
- python爬取股票网站的历史周价格
- 鸿蒙开放机型,鸿蒙今天对友商打响了第一炮!华为多款机型开启鸿蒙尝鲜