обновление гиперссылок на текст в абзаце: вопрос для интервью - PullRequest
0 голосов
/ 29 октября 2010

Один вопрос на собеседовании, который мне задали на собеседовании, и я не получил решения.

Ниже приведен пример абзаца, и наша программа должна дать гиперссылки для слов, которые соответствуют

"Драйвер сетевого протокола. Драйвер сетевого протокола, полностью поддерживающий технологию Java, преобразует вызовы API JDBC в независимый от СУБД сетевой протокол, который затем преобразуется сервером в протокол СУБД. Это промежуточное программное обеспечение сетевого сервера может для подключения всех своих клиентов, основанных на технологии Java, ко многим различным базам данных. Конкретный используемый протокол зависит от поставщика. В общем, это наиболее гибкая альтернатива JDBC API. Вероятно, что все поставщики этого решения предоставят продукты, подходящие для Использование в интрасети. Для того чтобы эти продукты также поддерживали доступ к Интернету, они должны учитывать дополнительные требования к безопасности, доступу через брандмауэры и т. Д., Которые предъявляет Интернет. Несколько поставщиков добавляют драйверы на основе технологии JDBC в свои существующие продукты промежуточного программного обеспечения баз данных "

Слова, для которых нам нужно дать гиперссылки, доступны в таблице базы данных скажем (Таблица URL)

Сетевой протокол : www.network-protocol.com

сетевой протокол : www.netprotocol.com

Вопрос в том, как вы обновляете ссылки для двух приведенных выше слов в абзаце?

Я сказал, что продолжу поиск подходящего слова за словом и обновлю ссылки.

Если это было одно слово, совпадающее и обновляющее URL, мы можем определенно сделать это. но длина слов в таблице может быть 2 или 3 или 4 Макс. тогда сопоставление не работает, и нам нужно сопоставить ровно 2 слова, например сетевой протокол и сетевой протокол .

Например, если я ищу слово протокола, многие из них совпадают, и вероятность обновления неправильного URL будет больше.

Какое лучшее решение и есть ли API для этого? Если мы можем сделать с более эффективными, а также.

Ответы [ 2 ]

1 голос
/ 29 октября 2010

Вот о чем я подумал:

гипотетически;для произвольного числа записей в БД и произвольной длины текста (читай: много абзацев, возможно, даже страниц) сопоставление может быть выполнено путем создания оператора, содержащего фразы в БД, и поиска по древовидной структуре.

например, предположим, что в базе данных содержатся следующие фразы:

Сетевой протокол

сетевой протокол

яблоки и груши

Сетевое удивление

Сеть - это дерьмо

...

тогда ваше дерево будет иметь Network, net, apples на верхнем уровне с Network и net с подузлами protocol, awesomeness и protocol, is ... соответственно.

Я не уверен, что это то, что вы ищете, хотя написал это толькопотому что вы упомянули, что это был теоретический вопрос на собеседовании :)

1 голос
/ 29 октября 2010
  1. Прочитайте полный абзац в строку, т.е. str
  2. str.replaceAll(phraseFromDB, "<a href='" + urlFromDB + "'>" + phraseFromDB + "</a>") в цикле на основе количества записей, найденных в таблице БД.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...