我想知道 Java 中是否有任何类能够使用自己的标准检查一个字符串与另一个字符串的相等程度。 示例:
William Shakespeare/William Shakespeare:可能是 100%
William Shakespe**a**re/William Shakespe**e**re :可能超过 90%
William Shakespeare/Shakespeare, William:可能有 70% 以上(仅示例)
最佳答案
我看到两个主要候选人:
- Soundex编码,由 Apache Commons 实现.但是,请注意,它主要用于单个、相对较短的单词。它不会在您的第三个示例中找到相似之处。此外,它实际上只适用于英文单词。
- Levenshtein distance (再次在 Apache Commons 实现)。这是与语言无关的,但是与第三个示例中的切换部分的相似度相对较低(更像是 40%)。类似 Damerau–Levenshtein distance 的修改可能会产生更好的结果。
关于java - 检查一个字符串在 Java 中听起来有多像另一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2461120/