代码之家  ›  专栏  ›  技术社区  ›  gmhk

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

  •  0
  • gmhk  · 技术社区  · 14 年前

    有一个面试问题是我在面试中被问到的,但我没有得到答案。

    下面是示例段落,我们的程序应该给出数学单词的超链接。

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

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

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

    网络协议 :www.netprotocol.com

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

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

    如果是一个匹配和更新URL的单词,我们就可以很明显地使用它。 但是表中单词的长度可能是2、3或4个最大值,那么匹配不起作用,例如,我们需要精确匹配2个单词。 网络协议 网络协议 .

    例如,如果我在搜索协议字,有许多匹配的,更新错误的URL的机会会更多。

    最好的解决方案是什么?是否有可用的API?如果我们也能用更有效的方法。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Adeel Ansari    14 年前
    1. 把整个段落读成一个字符串,即 str
    2. str.replaceAll(phraseFromDB, "<a href='" + urlFromDB + "'>" + phraseFromDB + "</a>") 基于在DB表中找到的记录数的循环中。
        2
  •  1
  •   posdef    14 年前

    我想到的是:

    假设地说,对于数据库中任意数量的条目和任意长度的文本(阅读:许多段落,甚至页面),可以通过构建数据库中保存短语的A并搜索树结构来进行匹配。

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

    网络协议

    网络协议

    苹果和梨

    网络惊人

    网是狗屎

    你的树就会 Network , net , apples 在顶层 网络 保留子节点 protocol , awesomeness 协议 , is …分别。

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