欢迎光临
我们一直在努力

java处理emoji表情,js过滤emoji表情

由于网上某个版本存在bug,以下是将bug修复过的版本,仅供参考

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 “”;//如果没vps云服务器有找到非emoji的字符,则返回无内容的字符串
? ? ? ? } else {
? ? ? ? ? ? if (buf.length() == len) {
? ? ? ? ? ? ? ? buf = null;
? ? ? ? ? ? ? ? return source;
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? return buf.toString();
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ??
} 57927391

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。