Moh*_*mad 3 string coldfusion diff coldfusion-9
我想在我的网站上实现一种版本历史记录,我需要一种比较字符串或对象键的方法.例如:
原始字符串/对象键:棕色狐狸更快
修改过的字符串/对象键:快速的棕色狐狸跳过了懒兔子
修改:添加了跳过懒兔子删除了呃
我想只保存历史表中的修订版.我真的不知道从哪里开始,所以任何想法如何让我去或建议的方法将非常感激.
我知道find()函数,我怀疑它是一个主要的候选使用,但我不知道如何将它可视化为一个解决方案,因为它比较字符串"批发"可以这么说.
你想要一个差异算法(我已经标记了这个问题),我强烈建议你不要自己写.我已经尝试过 - 并且失败了 - 因为这是一个NP完全问题并且不容易包裹你的想法.相反,请查看diff-match-patch,它具有用于客户端(演示)或服务器端处理的JavaScript和Java实现.如果您需要进行HTML差异,请查看daisydiff,尽管预先警告HTML/XML 差异确实是一种痛苦的经历(请参阅此页面了解原因).
可能是diffing的祖父是GNU diff,它也有Java实现(找到"GNU Diff for Java").这个算法比diff-match-patch(dmp)更优化,尽管dmp似乎一直在改进,所以如果你需要比较非常大的字符串(例如兆字节),GNU算法可能是更好的选择.