一千萬個為什麽

搜索

Java:將diff計數作為int返回的字符串比較庫?

是否存在一個庫甚至是標準的API調用,它允許我區分兩個字符串並將diff字符數作為一個int?我不介意其他功能,只要我能獲得更多程序化的差異結果(例如int)而不是只輸出整個人類可讀差異的東西。

最佳答案

我想你想要的是 Leveshtein距離 - 它告訴你有多少變化(插入,刪除)或者替換)需要將一個字符串轉換為另一個字符串。

例如, abcdeabcdef 之間的區別是1,因為在 abcde 中的最後一個位置之後插入 f 獲取 abcdef

abcdeabcdf 之間的區別也是1,因為你用 f 替換第一個字符串中的 e 來獲取第二。

abcdeabde 之間的區別是1,因為您刪除了第一個字符串中的 c 以獲取第二個字符串。

可以在 Apache Commons Text 中找到非常好的實現: LevenshteinDistance

以下是一些 Java中的示例實現

轉載註明原文: Java:將diff計數作為int返回的字符串比較庫?