我需要在Java字符串之间执行Diffs.我希望能够使用原始字符串和diff版本重建字符串.有没有人用Java做过这个?你用什么图书馆?
String a1; // This can be a long text String a2; // ej. above text with spelling corrections String a3; // ej. above text with spelling corrections and an additional sentence Diff diff = new Diff(); String differences_a1_a2 = Diff.getDifferences(a,changed_a); String differences_a2_a3 = Diff.getDifferences(a,changed_a); String[] diffs = new String[]{a,differences_a1_a2,differences_a2_a3}; String new_a3 = Diff.build(diffs); a3.equals(new_a3); // this is true
bernardn.. 48
这个库似乎可以解决这个问题:google-diff-match-patch.它可以根据差异创建补丁字符串,并允许重新应用补丁.
编辑:另一种解决方案可能是https://code.google.com/p/java-diff-utils/
这个库似乎可以解决这个问题:google-diff-match-patch.它可以根据差异创建补丁字符串,并允许重新应用补丁.
编辑:另一种解决方案可能是https://code.google.com/p/java-diff-utils/
Apache Commons有String diff
org.apache.commons.lang.StringUtils
StringUtils.difference("foobar", "foo");