Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更新段落中文本的超链接:面试问题_Java_String - Fatal编程技术网

Java 更新段落中文本的超链接:面试问题

Java 更新段落中文本的超链接:面试问题,java,string,Java,String,在一次面试中,有人问了我一个面试问题,我没有得到答案 下面是示例段落,我们的程序应该为匹配的单词提供超链接 “网络协议驱动程序-完全支持Java技术的网络协议驱动程序将JDBCAPI调用转换为独立于DBMS的网络协议,然后由服务器转换为DBMS协议。这个网络服务器中间件能够将其所有基于Java技术的客户端连接到许多不同的数据库。使用的具体协议取决于供应商。一般来说,这是最灵活的JDBCAPI替代方案。此解决方案的所有供应商都可能提供适合内部网使用的产品。为了使这些产品也支持互联网接入,它们必须处

在一次面试中,有人问了我一个面试问题,我没有得到答案

下面是示例段落,我们的程序应该为匹配的单词提供超链接

“网络协议驱动程序-完全支持Java技术的网络协议驱动程序将JDBCAPI调用转换为独立于DBMS的网络协议,然后由服务器转换为DBMS协议。这个网络服务器中间件能够将其所有基于Java技术的客户端连接到许多不同的数据库。使用的具体协议取决于供应商。一般来说,这是最灵活的JDBCAPI替代方案。此解决方案的所有供应商都可能提供适合内部网使用的产品。为了使这些产品也支持互联网接入,它们必须处理网络对安全性、通过防火墙的接入等方面的额外要求。一些供应商正在向其现有的数据库中间件产品中添加基于JDBC技术的驱动程序“

我们需要提供超链接的单词可以在数据库表(比如URL表)中找到

网络协议:www.Network-protocol.com

网络协议:www.netprotocol.com

问题是你如何更新段落中上述两个单词的链接

我说我会逐字进行匹配并更新链接

如果是一个单词匹配和更新url,我们可以熟练地完成这项工作。 但是表中的单词长度最多可能是2个、3个或4个。然后匹配不起作用,我们需要精确匹配2个单词,例如网络协议网络协议

例如,如果我正在搜索协议词,有许多匹配的,更新错误url的机会会更多

最好的解决方案是什么?有什么api可以实现这一点吗?如果我们可以更高效地实现的话

  • 将整个段落读入字符串,即
    str
  • str.replaceAll(phraseFromDB,”)
    在循环中,该循环基于在DB表中找到的记录数

  • 我想到了一件事:

    假设地说,对于数据库中任意数量的条目和任意长度的文本(阅读:许多段落,甚至可能是页面),可以通过构建一个数据库并在树结构上搜索短语来完成匹配

    例如,假设数据库包含以下短语:

    网络协议

    网络协议

    苹果和梨

    网络威严

    网络是狗屎

    然后,树的顶层将分别有
    网络
    网络
    苹果
    网络
    网络
    持有子节点
    协议
    令人敬畏
    协议


    我不确定这是否是你想要的,写这篇文章只是因为你在采访中提到这是一个理论问题:)

    @harigm:现在,我相信它会的。:)你的意思是说使用树集合可以帮助我找到一个解决方案??我的意思是,如果定期匹配可能不会出现这样的问题工作中,我们可以使用树结构。但显然,如果手头的问题可以通过@Adeel提到的简单方法来解决,这显然是一种过度使用