Diff в Java

Я ищу реализацию diff в Java. Я видел, что у Python есть свой собственный SequenceMatcher (с difflib), который именно то, что мне нужно... на Java.

Есть ли какой-нибудь перенос? Или есть ли какой-либо другой класс/библиотека, который выполняет то же самое в Java?

Если нет, где я могу найти исходный код этого difflib (если свободен, как в речи), чтобы выполнить мою собственную реализацию SequenceMatcher в Java?

К сожалению, Apache Commons Lang не очень помогает мне.

Спасибо!

Ответ 1

Эта библиотека, похоже, вам нравится: google-diff-match-patch.

Он имеет следующие основные функции:

  • Diff: Сравните два блока обычного текста и эффективно верните список различий.
  • Соответствие:. В соответствии с поисковой строкой найдите свое лучшее нечеткое соответствие в блоке простого текста. Взвешен как для точности, так и для местоположения.
  • Патч: Применять список патчей на простой текст. Используйте исправление для исправления, даже если базовый текст не соответствует.

Если вам нужна альтернатива, вы также можете попробовать следующее: java-diff-utils

Ответ 2

Привет. Вы можете запустить задание MR, которое может использовать https://code.google.com/p/google-diff-match-patch/ для выполнения требуемой работы. Я не чувствую, что есть какие-либо инструменты из коробки, чтобы выполнять свою работу.