`
liulanghan110
  • 浏览: 1076536 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

文章自动添加超链接

    博客分类:
  • JAVA
阅读更多

在网上可以发现,很多文章中的关键词会有超链接,超链接的实现可以由编辑手动添加,但这样工作量大。如果能实现发表文章时自动添加超链接,编辑工作将会有很大的提升。

 

词库采用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;
	}
}

 

1
0
分享到:
评论

相关推荐

    EmlogPro站外超链接跳转安全提示插件源码资源下载整理.zip

    启用后,系统会检测到用户发布的文章或评论中的外部链接,并在链接前方添加安全提示。这个提示可以是简单的文字警告,也可以是弹出确认框,让用户在点击前明确知道这将跳转到站外。此外,插件可能还包含了一些过滤...

    HTML制作超链接QQ号,点击后启动QQ聊天框

    通过这些方法,你可以轻松地在自己的网页上添加一个超链接,当用户点击时,他们的QQ客户端(如果已安装)将自动打开并进入与你指定QQ号码的聊天界面。这不仅提高了用户体验,也为网站的互动性提供了有力支持。在实际...

    TextView加超链接

    本篇文章将详细讲解如何在`UITextView`中添加超链接,并探讨相关的实现方法。 首先,我们了解`UITextView`的基本使用。`UITextView`继承自`UIScrollView`,它可以显示富文本(attributed text),这意味着我们可以...

    WordPress给文章图片自动添加链接的方法

    本文实例讲述了WordPress给文章图片自动添加链接的方法。分享给大家供大家参考。具体分析如下: 我们会看到有很多的网站我们点击图片就会进入当前文件连接了,下面我来给使用wordpress博客的同学也来介绍此种方法,...

    autohyperlink

    "Autohyperlink" 是一个工具或函数,其主要目的是为文本中的特定词汇或"热字"自动添加超链接。这个功能在处理大量文本时非常有用,例如在编写博客、文章或者论坛帖子时,如果需要频繁地引用某个网址,手动添加超链接...

    delphi超链接

    本篇文章将深入探讨如何在Delphi中创建和使用超链接,以及相关的技术和最佳实践。 首先,理解超链接的基本概念至关重要。在网页设计中,超链接是由`&lt;a&gt;`标签定义的,它允许用户点击后跳转到另一个URL。而在Delphi...

    VC richedit 设置超链接

    本篇文章将详细讲解如何在VC++环境下利用RichEdit控件设置超链接,并探讨相关的关键知识点。 首先,你需要包含必要的头文件`#include &lt;riched20.h&gt;`,这个头文件包含了对RichEdit20A控件的支持,它是支持超链接的...

    TextView实现超链接的四种方式

    本篇文章将详细探讨如何在TextView中实现超链接的四种方法。 ### 1. 使用`android:autoLink` 第一种方式是利用TextView的`android:autoLink`属性。这个属性可以自动识别文本中的URL、电话号码、电子邮件地址等,并...

    赛维网络生成html文章系统

    1、文章可以在后台进行自动分页(通过插入[PAGE]标签进行自动分页) 2、文章内部链接功能:通过添加的专题关键字在文章内容中自动识别,生成超链接 3、文章的HTML编辑功能:可视化编辑

    文章中关键词加链接的思路和php的实现

    在互联网内容创作中,将文章中的关键词添加超链接是一种常见的优化策略,这有助于提升用户体验,增加网站内部链接的深度,以及提高搜索引擎优化(SEO)的效果。这篇文章将探讨如何实现这一功能,并提供一个PHP的实现...

    Android使用TextView实现无下划线超链接的方法

    本篇文章将详细讲解如何在TextView中实现无下划线的超链接,并提供具体的实现步骤和代码示例。 首先,要理解TextView的超链接处理机制。Android系统会自动识别文本中的URL、电话号码、电子邮件地址和地理坐标,并将...

    Word2021如何实现鼠标指向自动显示提示文字.docx

    1. 先把输入光标定位到要添加提示的文字后,切换到"引用"选项卡,单击"插入尾注",输入光标会自动定位到文章最后,在此输入提示即可。 2. 现在再回到添加尾注的地方,可看到右上角有一个编号"i",鼠标指向这个编号或...

    PHP数组 为文章加关键字连接 文章内容自动加链接

    在本篇内容中,我们将深入了解如何使用PHP语言对文章内容进行处理,实现自动添加关键字链接的功能。这种技术常见于各种内容管理系统,比如网易新闻等,能够帮助网站管理人员将特定的关键字转换成指向特定页面的...

    网页设计DW 超链接、锚点链接、邮件链接.pdf

    本篇文章将详细讲解在网页设计中常用的三种链接:超链接、邮件链接以及锚点链接,这些是构建交互式网页的关键元素。 首先,我们来看超链接。超链接是网页之间相互连接的桥梁,它允许用户通过点击文本或图像来访问...

    C#实现文章添加内链的方法

    在C#中实现文章添加内链的功能,主要是为了...通过这种方式,可以自动化地在文章中插入内链,从而提高网站的整体质量和用户体验。同时,对于大型内容管理系统,还可以考虑将这个功能模块化,以适应不同的需求和配置。

    PJBlog转Wordpress工具

    4、自动转移文章内容(智能过滤草稿箱文章) 4.1、每篇文章对应的分类自动转移 4.2、每篇文章的评论自动转移 4.3、自动替换部分PJ特殊代码,如[color=Red]等为wp的代码 4.4、自动处理[img]download.asp?id=xxx[/img]...

    vc界面画图 、启动画面、多边行、右键、超链接于一体

    这篇文章将详细讲解如何实现这些功能,帮助你构建一个全面的界面应用。 首先,让我们从启动画面开始。启动画面可以提升应用程序的专业感,为用户提供友好的第一印象。在VC++中,你可以通过创建一个单独的对话框或...

    jquery 结合C#后台的数组对文章的关键字自动添加链接的代码

    文件中的代码演示了如何将文章中的特定关键字自动添加链接,以实现一种自动化的网页内容管理。 9. 关键字链接处理: 知识点说明:在网页中,常常需要对某些特定的词进行高亮显示或提供链接。文件中的代码片段正是将...

    php自动给文章加关键词链接的函数代码

    PHP在处理字符串和数组方面具有很强的功能,使其非常适用于自动化的文本处理任务,如在文章中自动添加关键词链接。通过上述的知识点总结,我们可以看到,即使是看似简单的脚本,也包含了PHP编程语言中多个重要的概念...

Global site tag (gtag.js) - Google Analytics