我有一个公司数据库.我的应用程序接收按名称引用公司的数据,但名称可能与数据库中的值不完全匹配.我需要将传入的数据与它所引用的公司进行匹配.
例如,我的数据库可能包含名称为"AB Widgets&Co Ltd."的公司.我的传入数据可能会引用"AB Widgets Limited","AB Widgets and Co"或"AB Widgets".
公司名称中的一些单词(AB Widgets)对于匹配比其他单词(Co,Ltd,Inc等)更重要.避免错误匹配很重要.
公司的数量足够小,我可以在记忆中维护他们的名字地图,即.我可以选择使用Java而不是SQL来查找正确的名称.
你会如何用Java做到这一点?
您的数据库可能支持使用正则表达式 (regex) - 请参阅下面的一些 Java 教程 - 以下是 MySQL 文档的链接(作为示例):http:
//dev.mysql.com/doc/refman/5.0/ zh/regexp.html#operator_regexp
您可能希望在数据库中为每个公司存储一个相当复杂的正则表达式语句,其中包含您可能预期的拼写变化,或者您希望重视的公司名称的子元素。
您还可以使用Java中的正则表达式库
JDK 1.4.2
http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html
JDK 1.5.0
http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Matcher.html
在 Java 中使用正则表达式
http://www.regular-expressions.info/java.html
Java Regex API 解释
http://www.sitepoint.com/article/java-regex-api-explained/
您可能还想查看您的数据库是否支持 Soundex 功能(例如,请参阅以下 MySQL 链接)
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_soundex