java - 文本中 "marking up"URL 和主题标签的快速方法

标签 java algorithm text-processing

我需要处理大量消息,做两件基本的事情,将 URL 和主题标签转换为链接。我可以通过多种方式来执行此操作,但在 Java 中,CPU 和内存效率最高的方式是什么?例如:

This is some #text with for http://mysite.com/

变成:

This is some <a href="">#text</a> for <a href="">http://mysite.com/</a>

最佳答案

我的第一个想法是两次调用 String.replaceAll() ,一个用于标签,一个用于链接。代码将是可读的并且相当快。

我的第二个想法是更快,但更难看。一次完成所有事情的东西。总体思路:

final String message = "This is some #text with for http://mysite.com/";
for (int i = 0; i < message.length; i++)
{
    if (message[i] == '#')
    {
        // mark a hashtag
    }
    else if (i < message.length - 6 && (message[i] == 'h' || message[i + 1] == 't' || message[i + 2] == 't' || message[i + 3] == 'p' || message[i + 4] == ':' || message[i + 5] == '/' || message[i + 6] == '/'))
    {
        // mark a link
    }
}

关于java - 文本中 "marking up"URL 和主题标签的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18461734/

相关文章:

java - 获取 FileNotFoundException

C++ 算法结构和类

powershell - 替换两个特定字符串之间的行 - 在 cmd 中等效于 sed

c++ - std::map<t1, t2>::erase(iterator position) 的工作?

c++ - 需要有关多线程合并排序的建议

linux - 我们如何使用 shell 脚本在文件中的特定字符串之前添加一个 block

nlp - 无趣单词列表

java - 当节点有多个值时如何使用JAVA替换XML标签中的值

java - 如何获取合并报告的总页数

java - Spring微服务端到端测试