我需要匹配两个几乎相同的长自由文本字符串; 即,尽可能找到索引到索引的对应关系.
因为这是自由文本,所以比较不应该像代码差异一样基于行.
有关Java库的任何建议吗?
一个简单的例子(在现实生活中,当然,不会有额外的空格来排列,并且可能会有更复杂的挑战,比如整个条款的移动.)
The quick brown fox jumped over the lazy dog. |||||||||| ||||||||||||||||||||| ||||| The quick yellow fox jumped over the well-bred dog.
Joshua Fox.. 16
这个可能是很好的Diff Match Patch.
这个可能是很好的Diff Match Patch.
根据您的具体要求,在StringUtils
类的阿帕奇共享郎组件可能是有用的,例如:
StringUtils#difference:比较两个字符串,并返回它们不同的部分
StringUtils#getLevenshteinDistance:找到两个字符串之间的Levenshtein距离