【发布时间】:2014-03-28 08:26:51
【问题描述】:
String a = 'string'
String b = 'This is a strin'
println b.containsSimilarity(a)
Groovy 中是否有类似 imaginary containsSimilarity 的函数来表示字符串的差异,所以 我想在 "string" 中搜索 "This is a strin" 和经过比较说 83% 的 String "string" 是在 "This is a strin" 中找到的。 使用 Spock 时的断言之类的东西
断言 "string"=="string"
结果是:
"字符串"=="字符串" | 错误的 1 个差异(83% 相似性) 细绳) 字符串(-)
我如何在 Groovy 中做到这一点?所以不是要比较两个字符串,而是要找出 String a 的大部分包含在 String b 中。如果 a 是 b 的一部分 ->true,否则为 false 并打印相似度百分比并显示差异在哪里。
【问题讨论】:
-
这不是与字符串上的 Levenshtein 距离有关吗?也许this stackoverflow question有答案
-
一点也不。我的字符串 b 很长,我想搜索其中的一小部分。因此,如果我的字符串 b 是英文字母,而字符串 a 在比较后是“w”,我希望得到 100% 的结果,但使用 Levenshtein 或 Jaro-Walker,它会是 0.03% 甚至更少。
标签: string groovy compare spock