2010-06-09 3 views
10

Je suis à la recherche d'une implémentation diff en Java. J'ai vu que Python a son propre SequenceMatcher (avec difflib), ce qui est exactement ce dont j'ai besoin ... en Java.diff implémentation en Java

Y a-t-il un portage? Ou y a-t-il une autre classe/bibliothèque qui effectue la même chose en Java?

Sinon, où puis-je trouver le code source de cette difflib (si libre comme dans le discours) pour faire ma propre implémentation de SequenceMatcher en Java?

Malheureusement, Apache Commons Lang ne m'aide pas beaucoup.

Merci!

+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 tous les liens sont périmés – gstackoverflow

Répondre

17

Cette bibliothèque semble être ce que vous cherchez: google-diff-match-patch.

Il présente les caractéristiques principales suivantes:

  1. Diff: Comparer deux blocs de texte et retour efficacement une liste des différences.
  2. Correspondance: Étant donné une chaîne de recherche, trouvez sa meilleure correspondance floue dans un bloc de texte brut. Pondéré pour l'exactitude et l'emplacement.
  3. Correctif: Appliquez une liste de correctifs au texte brut. Utilisez le mieux possible pour appliquer le correctif même lorsque le texte sous-jacent ne correspond pas.

Si vous voulez une alternative, vous pouvez également essayer ceci: java-diff-utils

+0

Exactement ce dont j'avais besoin: diff, match et patch. –

+1

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