Pustaka Diff Utils adalah pustaka OpenSource untuk melakukan operasi perbandingan antar teks: menghitung perbedaan, menerapkan tambalan, membuat atau menguraikan perbedaan terpadu, menghasilkan keluaran diff agar mudah ditampilkan di masa mendatang (seperti tampilan berdampingan) dan seterusnya.
Alasan utama untuk membangun perpustakaan ini adalah kurangnya perpustakaan yang mudah digunakan dengan semua hal yang biasa Anda perlukan saat bekerja dengan file diff. Awalnya terinspirasi oleh perpustakaan JRCS dan desain modul diffnya bagus.
Ini awalnya merupakan cabang dari java-diff-utils dari Google Code Archive.
Javadocs dari versi rilis aktual: JavaDocs java-diff-utils
Lihat di sini untuk menemukan informasi dan contoh bermanfaat lainnya.
Kedua keluaran ini dihasilkan menggunakan java-diff-utils. Kode sumber juga dapat ditemukan di halaman Contoh :
Menghasilkan satu liner yang mencakup semua informasi perbedaan.
//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 ());
Ini adalah ujian kalimat untuk diffutil .
Menghasilkan tampilan berdampingan dari perbedaan yang dihitung.
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 () + "|" );
}
asli | baru |
---|---|
Ini adalah ujian | Ini adalah ujian untuk diffutils . |
Ini adalah baris kedua. | Ini adalah baris kedua. |
Tapi itu bisa dengan mudah diganti dengan yang lain yang lebih baik untuk menyampaikan teks Anda. Saya punya rencana untuk menambahkan beberapa implementasi di masa depan.
Baru-baru ini proses checkstyle diintegrasikan ke dalam proses pembangunan. java-diff-utils mengikuti konvensi format sun java. Tidak ada TAB yang diperbolehkan. Gunakan spasi.
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 <>());
}
Ini adalah bagian kode sumber yang valid:
Cukup tambahkan kode di bawah ini ke dependensi maven Anda:
< dependency >
< groupId >io.github.java-diff-utils</ groupId >
< artifactId >java-diff-utils</ artifactId >
< version >4.15</ version >
</ dependency >
atau menggunakan gradle:
// https://mvnrepository.com/artifact/io.github.java-diff-utils/java-diff-utils
implementation " io.github.java-diff-utils:java-diff-utils:4.12 "