2010-06-09 19 views
10

Sto cercando un'implementazione diff in Java. Ho visto che Python ha il suo SequenceMatcher (con difflib), che è esattamente quello di cui ho bisogno ... in Java.implementazione diff in Java

Esiste un portage? O c'è qualche altra classe/libreria che esegue lo stesso in Java?

In caso contrario, dove posso trovare il codice sorgente di tale difflib (se libero come discorso) per realizzare la mia implementazione di SequenceMatcher in Java?

Sfortunatamente, Apache Commons Lang non mi aiuta molto.

Grazie!

+0

https://java-diff.dev.java.net/ http://code.google.com/p/java-diff-utills/ http://www.incava.org/projects/java/java -diff/ – Bozho

+0

@Bozho tutti i link non sono aggiornati – gstackoverflow

risposta

17

Questa libreria sembra essere quello che stai cercando: google-diff-match-patch.

Essa ha le seguenti caratteristiche principali:

  1. Diff: Confronta due blocchi di testo normale e di ritorno in modo efficiente un elenco di differenze.
  2. Corrispondenza: Data una stringa di ricerca, trova la migliore corrispondenza fuzzy in un blocco di testo normale. Ponderato sia per precisione che per posizione.
  3. Patch: Applicare un elenco di patch sul testo normale. Usa il miglior sforzo per applicare la patch anche quando il testo sottostante non corrisponde.

Nel caso in cui si desidera un'alternativa, si potrebbe anche provare questo: java-diff-utils

+0

Esattamente quello che mi serviva: diff, match e patch. –

+1

github fork di java-diff-utils: https://github.com/KengoTODA/java-diff-utils –