package org.home; import java.util.List; import com.github.difflib.text.DiffRowGenerator; public class TestCase { public static void main(String[] args) throws Exception { List lines1 = List.of( "apple1", "apple2", "apple3", "A man named Frankenstein abc to Switzerland for cookies!", "banana1", "banana2", "banana3"); List lines2 = List.of( "apple1", "apple2", "apple3", "A man named Frankenstein", "xyz", "to Switzerland for cookies!", "banana1", "banana2", "banana3"); int[] entry = { 1 }; DiffRowGenerator.create() .showInlineDiffs(true) .oldTag((tag, isOpening) -> isOpening ? "==old" + tag + "==>" : "<==old==") .newTag((tag, isOpening) -> isOpening ? "==new" + tag + "==>" : "<==new==") .build() .generateDiffRows(lines1, lines2) .stream() .forEachOrdered(row -> { System.out.printf("%4d %-8s %-80s %-80s\n", entry[0]++, row.getTag(), row.getOldLine(), row.getNewLine()); }); } }