Java:将diff计数作为int返回的字符串比较库?

时间:2010-04-15 15:58:19

标签: java comparison

是否存在一个库甚至是标准的API调用,它允许我区分两个字符串并将diff字符的数量作为int?我不介意其他功能,只要我能获得更多程序化的差异结果(例如int)而不是只输出整个人类可读差异的东西。

2 个答案:

答案 0 :(得分:6)

我认为你想要的是Leveshtein distance - 它告诉你将一个字符串转换成另一个字符串需要多少次更改(插入,删除或替换)。

例如,abcdeabcdef之间的差异为1,因为您在f的最后一个位置后插入abcde以获取abcdef

abcdeabcdf之间的差异也是1,因为您将第一个字符串中的e替换为f以获得第二个字符串。

abcdeabde之间的差异为1,因为您删除了第一个字符串中的c以获得第二个字符串。

可以在Apache Commons TextLevenshteinDistance中找到非常好的实施方案。

以下是一些sample implementation in Java

答案 1 :(得分:1)

我不知道任何标准API调用,但您可以看到此问题以引用第三方库(这并不奇怪 - Google,Apache Commons ......)

  

How to perform string Diffs in Java?
  How to perform string Diffs in Java?