java diff utils
va-diff-utils-parent-4.15
Diff Utils 函式庫是一個開源函式庫,用於執行文字之間的比較操作:計算差異、套用修補程式、產生統一差異或解析它們、產生差異輸出以方便將來顯示(如並排視圖)等。
建立這個庫的主要原因是缺乏易於使用的庫,其中包含處理 diff 檔案時所需的所有常用內容。最初它的靈感來自 JRCS 庫,它的 diff 模組設計得很好。
這原本是來自 Google Code Archive 的 java-diff-utils 的一個分支。
實際發行版本的Javadocs:JavaDocs java-diff-utils
請在此處查找更多有用的信息和範例。
這兩個輸出是使用 java-diff-utils 產生的。原始碼也可以在範例頁面找到:
產生包含所有差異資訊的單行。
//create a configured DiffRowGenerator
DiffRowGenerator generator = DiffRowGenerator . create ()
. showInlineDiffs ( true )
. mergeOriginalRevised ( true )
. inlineDiffByWord ( true )
. oldTag ( f -> "~" ) //introduce markdown style for strikethrough
. newTag ( f -> "**" ) //introduce markdown style for bold
. build ();
//compute the differences for two test texts.
List < DiffRow > rows = generator . generateDiffRows (
Arrays . asList ( "This is a test senctence." ),
Arrays . asList ( "This is a test for diffutils." ));
System . out . println ( rows . get ( 0 ). getOldLine ());
這是一個測試句子對於 diffutils 。
產生計算差異的並排視圖。
DiffRowGenerator generator = DiffRowGenerator . create ()
. showInlineDiffs ( true )
. inlineDiffByWord ( true )
. oldTag ( f -> "~" )
. newTag ( f -> "**" )
. build ();
List < DiffRow > rows = generator . generateDiffRows (
Arrays . asList ( "This is a test senctence." , "This is the second line." , "And here is the finish." ),
Arrays . asList ( "This is a test for diffutils." , "This is the second line." ));
System . out . println ( "|original|new|" );
System . out . println ( "|--------|---|" );
for ( DiffRow row : rows ) {
System . out . println ( "|" + row . getOldLine () + "|" + row . getNewLine () + "|" );
}
原來的 | 新的 |
---|---|
這是一個測試 | 這是對 diffutils 的測試。 |
這是第二行。 | 這是第二行。 |
但它可以很容易地被任何其他更適合處理文字的東西所取代。我計劃將來添加一些實施。
最近,檢查樣式流程已整合到建置流程中。 java-diff-utils 遵循 sun java 格式約定。不允許使用 TAB。使用空格。
public static < T > Patch < T > diff ( List < T > original , List < T > revised ,
BiPredicate < T , T > equalizer ) throws DiffException {
if ( equalizer != null ) {
return DiffUtils . diff ( original , revised ,
new MyersDiff <>( equalizer ));
}
return DiffUtils . diff ( original , revised , new MyersDiff <>());
}
這是一段有效的原始碼:
只需將以下程式碼新增至您的 Maven 依賴項:
< dependency >
< groupId >io.github.java-diff-utils</ groupId >
< artifactId >java-diff-utils</ artifactId >
< version >4.15</ version >
</ dependency >
或使用 gradle:
// https://mvnrepository.com/artifact/io.github.java-diff-utils/java-diff-utils
implementation " io.github.java-diff-utils:java-diff-utils:4.12 "