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

Zom*_*ies 4 java comparison

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

dan*_*ben 6

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

例如,之间的差异abcdeabcdef为1,因为你插入f的最后一个位置后abcde得到abcdef.

abcde和之间的差异abcdf也是1,因为您e在第一个字符串中替换f为获取第二个字符串.

abcde和之间的差异abde是1,因为您c在第一个字符串中删除以获取第二个字符串.

Apache Commons Text:LevenshteinDistance中可以找到一个非常好的实现.

以下是Java中的一些示例实现.