在网上可以发现,很多文章中的关键词会有超链接,超链接的实现可以由编辑手动添加,但这样工作量大。如果能实现发表文章时自动添加超链接,编辑工作将会有很大的提升。
词库采用hashtable数据结构(最终实现是HashMap)。
下面是代码的实现:十万的词库,一万字的文章,自动标注在本机上测试只需要100ms,个人觉得效率还不错。
public class test { public static void main(String[] args) { Map<String,String> dict = createDict(); StringBuilder content = new StringBuilder("我想要一辆宝马的宝马X3或者是奥迪的奥迪A4L,如果是比亚迪F0或者吉利的车送给我也不要。"); for(int i = 0;i < 500;i++){ content.append("我想要一辆宝马的宝马X3或者是奥迪的奥迪A4L,如果是比亚迪F0或者吉利的车送给我也不要。"); } long startTime = System.currentTimeMillis(); String result = autoReplace(dict, content.toString()); long endTime = System.currentTimeMillis(); System.out.println("方法被执行,花费时间" + (endTime - startTime) + "ms"); System.out.println(result); } /** * * @Description: 将文章中的关键词用其他一些词来替换,比如加上a标签超链接等 * @param map 替换词库 * @param content 文章内容 * @return 参数说明 替换后的文章内容 */ private static String autoReplace(Map<String, String> map, String content) { //得到词库的Key最大长度,以便确定切割的最大长度 Set<String> keys = map.keySet(); int keylength = 0; for (String k : keys) { keylength = keylength < k.length() ? k.length() : keylength; } StringBuilder newContent = new StringBuilder(content); for (int i = 0; i < keylength; i++) { newContent.append(" "); } StringBuilder result ; for (int i = 0; i < newContent.length() - keylength; i++) { StringBuilder key = new StringBuilder(""); StringBuilder temp = new StringBuilder(""); boolean flag = false; for (int j = keylength; j >= 1; j--) { key = new StringBuilder(newContent.substring(i, i + j)); if (map.get(key.toString()) != null) { temp.append(map.get(key.toString())); i = i + j - 1; flag = true; break; } } if (!flag) { temp.append(newContent.charAt(i)); } result.append(temp); } return result.append(newContent.substring(newContent.length() - keylength)) .toString().trim(); } /** * * @Description: 创建一个词库 */ private static Map<String,String> createDict(){ Map<String, String> map = new HashMap<>(); map.put("宝马", "<a>宝马</a>"); map.put("宝马X3", "<a>宝马X3</a>"); map.put("奥迪", "<a>奥迪</a>"); map.put("奥迪A4L", "<a>奥迪A4L</a>"); map.put("比亚迪F0", "<a>比亚迪F0</a>"); map.put("吉利", "<a>吉利</a>"); for (Integer i = 0; i < 100000; i++) { map.put(i.toString(), "<a>吉利</a>"); } return map; } }
相关推荐
启用后,系统会检测到用户发布的文章或评论中的外部链接,并在链接前方添加安全提示。这个提示可以是简单的文字警告,也可以是弹出确认框,让用户在点击前明确知道这将跳转到站外。此外,插件可能还包含了一些过滤...
通过这些方法,你可以轻松地在自己的网页上添加一个超链接,当用户点击时,他们的QQ客户端(如果已安装)将自动打开并进入与你指定QQ号码的聊天界面。这不仅提高了用户体验,也为网站的互动性提供了有力支持。在实际...
本篇文章将详细讲解如何在`UITextView`中添加超链接,并探讨相关的实现方法。 首先,我们了解`UITextView`的基本使用。`UITextView`继承自`UIScrollView`,它可以显示富文本(attributed text),这意味着我们可以...
本文实例讲述了WordPress给文章图片自动添加链接的方法。分享给大家供大家参考。具体分析如下: 我们会看到有很多的网站我们点击图片就会进入当前文件连接了,下面我来给使用wordpress博客的同学也来介绍此种方法,...
"Autohyperlink" 是一个工具或函数,其主要目的是为文本中的特定词汇或"热字"自动添加超链接。这个功能在处理大量文本时非常有用,例如在编写博客、文章或者论坛帖子时,如果需要频繁地引用某个网址,手动添加超链接...
本篇文章将深入探讨如何在Delphi中创建和使用超链接,以及相关的技术和最佳实践。 首先,理解超链接的基本概念至关重要。在网页设计中,超链接是由`<a>`标签定义的,它允许用户点击后跳转到另一个URL。而在Delphi...
本篇文章将详细讲解如何在VC++环境下利用RichEdit控件设置超链接,并探讨相关的关键知识点。 首先,你需要包含必要的头文件`#include <riched20.h>`,这个头文件包含了对RichEdit20A控件的支持,它是支持超链接的...
本篇文章将详细探讨如何在TextView中实现超链接的四种方法。 ### 1. 使用`android:autoLink` 第一种方式是利用TextView的`android:autoLink`属性。这个属性可以自动识别文本中的URL、电话号码、电子邮件地址等,并...
1、文章可以在后台进行自动分页(通过插入[PAGE]标签进行自动分页) 2、文章内部链接功能:通过添加的专题关键字在文章内容中自动识别,生成超链接 3、文章的HTML编辑功能:可视化编辑
在互联网内容创作中,将文章中的关键词添加超链接是一种常见的优化策略,这有助于提升用户体验,增加网站内部链接的深度,以及提高搜索引擎优化(SEO)的效果。这篇文章将探讨如何实现这一功能,并提供一个PHP的实现...
本篇文章将详细讲解如何在TextView中实现无下划线的超链接,并提供具体的实现步骤和代码示例。 首先,要理解TextView的超链接处理机制。Android系统会自动识别文本中的URL、电话号码、电子邮件地址和地理坐标,并将...
1. 先把输入光标定位到要添加提示的文字后,切换到"引用"选项卡,单击"插入尾注",输入光标会自动定位到文章最后,在此输入提示即可。 2. 现在再回到添加尾注的地方,可看到右上角有一个编号"i",鼠标指向这个编号或...
在本篇内容中,我们将深入了解如何使用PHP语言对文章内容进行处理,实现自动添加关键字链接的功能。这种技术常见于各种内容管理系统,比如网易新闻等,能够帮助网站管理人员将特定的关键字转换成指向特定页面的...
本篇文章将详细讲解在网页设计中常用的三种链接:超链接、邮件链接以及锚点链接,这些是构建交互式网页的关键元素。 首先,我们来看超链接。超链接是网页之间相互连接的桥梁,它允许用户通过点击文本或图像来访问...
在C#中实现文章添加内链的功能,主要是为了...通过这种方式,可以自动化地在文章中插入内链,从而提高网站的整体质量和用户体验。同时,对于大型内容管理系统,还可以考虑将这个功能模块化,以适应不同的需求和配置。
4、自动转移文章内容(智能过滤草稿箱文章) 4.1、每篇文章对应的分类自动转移 4.2、每篇文章的评论自动转移 4.3、自动替换部分PJ特殊代码,如[color=Red]等为wp的代码 4.4、自动处理[img]download.asp?id=xxx[/img]...
这篇文章将详细讲解如何实现这些功能,帮助你构建一个全面的界面应用。 首先,让我们从启动画面开始。启动画面可以提升应用程序的专业感,为用户提供友好的第一印象。在VC++中,你可以通过创建一个单独的对话框或...
文件中的代码演示了如何将文章中的特定关键字自动添加链接,以实现一种自动化的网页内容管理。 9. 关键字链接处理: 知识点说明:在网页中,常常需要对某些特定的词进行高亮显示或提供链接。文件中的代码片段正是将...
PHP在处理字符串和数组方面具有很强的功能,使其非常适用于自动化的文本处理任务,如在文章中自动添加关键词链接。通过上述的知识点总结,我们可以看到,即使是看似简单的脚本,也包含了PHP编程语言中多个重要的概念...