2010-06-09 11 views
10

Szukam implementacji diff w Javie. Widziałem, że Python ma własny SequenceMatcher (z difflib), który jest dokładnie tym, czego potrzebuję ... w Javie.implementacja diff w Javie

Czy jest jakaś portage? Czy istnieje jakaś inna klasa/biblioteka, która wykonuje to samo w Javie?

Jeśli nie, to gdzie mogę znaleźć kod źródłowy tego pliku difflib (jeśli jest wolny jak w mowie), aby utworzyć implementację programu SequenceMatcher w języku Java?

Niestety Apache Commons Lang niewiele mi pomaga.

Dzięki!

+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 wszystkie linki są nieaktualne – gstackoverflow

Odpowiedz

17

Ta biblioteka wydaje się być tym, na co masz ochotę: google-diff-match-patch.

Posiada następujące główne cechy:

  1. Diff: Porównanie dwóch bloków zwykły tekst i sprawnie powrócić listę różnic.
  2. Dopasowanie: Biorąc pod uwagę szukany ciąg, znajdź jego najlepsze dopasowanie rozmyte w bloku zwykłego tekstu. Ważony zarówno pod względem dokładności, jak i lokalizacji.
  3. Łata: Zastosuj listę poprawek do zwykłego tekstu. Użyj najlepszego wysiłku, aby zastosować poprawkę, nawet jeśli tekst bazowy nie pasuje.

W przypadku, gdy chcesz alternatywę, można również spróbować tego: java-diff-utils

+0

Dokładnie to, czego potrzebowałem: diff, match i patch. –

+1

widelec github z java-diff-utils: https://github.com/KengoTODA/java-diff-utils –