我正在寻找一种方法来确定两个字符串之间的差异,并在两个字符串中突出显示它们。
我怀疑大多数'diff'库不会起作用,因为它们显示出不同的行(我相信)。
算法或库都可以使用。
谢谢, 标记
答案 0 :(得分:6)
DiffPlex可以处理许多不同类型的“行内”差异,包括字符和单词差异。我认为应该可以做你在这里要求的所有事情。
答案 1 :(得分:2)
从您的问题来看,您似乎拒绝使用现有程序并决定编写自己的程序,因为您认为现有程序无法在行内显示差异。
但是WinMerge可以显示行内差异。
这符合您的需求吗?或者你出于某种原因需要将它作为.NET组件吗?
答案 2 :(得分:1)
您可能希望查看使用Levenshtein distance或某些similar algorithm.对于Levenshtein算法的C#实现,请参阅here(如果您真的热衷于写作这个你自己)。
This question提出类似的问题,接受的答案指向一堆diff related projects。有很多很好的代码,这些代码绝对值得一看。
答案 3 :(得分:0)
String.Compare会起作用。如果你想比较单词,那么只需将初始字符串拆分成一个字符串数组并循环遍历它。