php聊天功能逻辑原理,@xxx提及用户,这种功能的实现原理是怎样的?
12
2014-12-13 22:05:54 +08:00 1
在牛客网 http://www.nowcoder.com 用户在我们网站提交的评论,我们会进行敏感词过滤,其算法是基于有限状态机DFA过滤的。 我觉得可以用敏感词过滤的方法来查找@的用户ID。 (用户ID就是好多敏感词), 具体的代码如下:
/**
* 过滤敏感词
*
* @param text
* @return
*/
public String filter(String text) {
if (StringUtils.isBlank(text)) {
return text;
}
String replacement = DEFAULT_REPLACEMENT;
StringBuilder result = new StringBuilder();
DFATreeNode tempNode = rootNode;
int begin = 0; // 回滚数
int position = 0; // 当前比较的位置
while (position < text.length()) {
char c = text.charAt(position);
// 空格直接跳过
if (isSymbol(c)) {
++position;
continue;
}
tempNode = tempNode.getSubNode(c);
// 当前位置的匹配结束
if (tempNode == null) {
// 以begin开始的字符串不存在敏感词
result.append(text.charAt(begin));
// 跳到下一个字符开始测试
position = begin + 1;
begin = position;
// 回到树初始节点
tempNode = rootNode;
} else if (tempNode.isKeywordEnd()) {
// 发现敏感词, 从begin到position的位置用replacement替换掉
result.append(replacement);
position = position + 1;
begin = position;
tempNode = rootNode;
} else {
++position;
}
}
result.append(text.substring(begin));
return result.toString();
}
php聊天功能逻辑原理,@xxx提及用户,这种功能的实现原理是怎样的?相关推荐
- 瑞吉外卖--套餐的添加修改等功能,短信验证登录原理操作及用户地址管理功能
整理记录下学习整个瑞吉外卖项目,详细代码可在我的Gitee仓库瑞吉外卖实战克隆下载学习使用! 9.套餐管理 9.1 新增套餐 9.1.1 需求分析 9.1.2 数据模型 新增套餐就是将新增页面录入的套 ...
- 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用
使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)--创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)--使用蓝图功能进行模块化 使用 Flask 框架写用 ...
- 你知道的APP中,有哪些比较好用有特色的用户互动功能(指用户可以参与进来的功能,比较常见的如评论、关注、投票、聊天室等)?你觉得一个功能具有什么特征,才会让用户愿意互动进来?
比较好用有特色的用户互动功能 1.微信公众号文章的"在看": 向好友展示了自己最近在看的文章,是另一种展现自己的方式:朋友可以对你的"在看"点赞,可以对你&qu ...
- 如何在App中实现朋友圈功能之二快速实现用户信息的自定义——箭扣科技Arrownock...
如何在App中实现朋友圈功能 之二 快速实现用户信息的自定义 自我关联社交元素: anSocial中很多的社交元素API,如帖子(Post).相册(Album).文件(File)等,这些API的可选参 ...
- 【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )
文章目录 一.申请权限 二.申请权限原理对话框 三.引导用户手动设置权限对话框 四.在 AndroidManifest.xml 中配置权限 五.完整代码示例 六.GitHub 地址 一.申请权限 申请 ...
- 简述实时音视频聊天中端到端加密(E2EE)的工作原理
前言 本文着重阐述端到端加密(E2EE),端到端加密是确保数据传输安全的可行方法之一.读完这篇文章,你可以了解这种加密方式的基本原理. 说到互联网的数据安全,一般用户可能认为,像端到端加密这类问题事不 ...
- Java基于Socket实现聊天、群聊、敏感词汇过滤功能
首先的话,这个代码主要是我很久以前写的,然后当时还有很多地方没有理解,现在再来看看这份代码,实在是觉得丑陋不堪,想改,但是是真的改都不好改了- 所以,写代码,规范真的很重要. 实现的功能: 用户私聊 ...
- 最详细的【微信小程序+阿里云Web服务】开发部署指引(十二):开发小程序用户反馈功能
文章目录 前言 一.功能说明 二.代码实现 1.创建界面Page 2.WXML 3.JS 4.WXSS 专题文章链接 前言 案例的运行效果,可以扫码观看: 本篇文章,我们将实现应用的用户反馈功能. 一 ...
- python编程用户登陆c_django实现用户登陆功能详解
简介: Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django是一个开放源代码的Web应用框架,由Python ...
最新文章
- 什么是事务的传播_这么漂亮的Spring事务管理详解,你不来看看?
- 《Shell脚本学习指南》第四章 文本处理工具
- 控件不能与用户交互的原因
- Visual Question Answering概述
- 【论文解读】A Survey on Visual Transformer及引文理解
- XML的四种解析器(dom,sax,jdom,dom4j)原理及性能比较
- cocos2d-x编程之CCScale9Sprite典型用法
- 西湖大学生命学院章永登实验室 (超分辨成像)科研团队招聘启事
- 赵泽良:规范引导数字平台健康发展是时代面临的新课题
- SSH远程链接:SCP远程拷贝文件与文件夹
- Go语言-defer的使用
- 用户需求分析:背后隐藏的门槛
- 内存映射文件的优势劣势体会
- 计算机shutdown命令,shutdown命令用法|电脑关机命令shutdown
- 文明IV模组(MOD)制作指南
- Scratch幻影小猫 电子学会图形化编程scratch等级考试三级真题答案2019-9
- 3nf mysql表_数据库三大范式(1NF,2NF,3NF)及ER图
- 莫比乌斯函数的两种求法(基于欧拉筛、埃氏筛)
- 计算机组成原理题目透析(2)
- 《吴恩达深度学习》编程作业-第二周
热门文章
- 地贝扫地机器人维修_扫地机器人常见故障及维修方法
- 微信小程序里如何使用npm?小程序集成友盟举例
- oracle 数据更新
- SVN更新时报403错误
- python 类和对象 有必要学吗_类与对象-python学习19
- HBase shell命令行
- spring cloud gateway url重写
- Sql Server中查看/修改identity(自增列)的值
- 2017年什么命_所谓“佛系”,真的不是什么都不做!
- rust加载不进去服务器eac_基于腾讯云的 Rust 和 WebAssembly 函数即服务