1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

String-Diff für Java

    • Frage
  • _Linuxhippy
  • 9. Mai 2007 um 20:37
  • Unerledigt
  • _Linuxhippy
    6
    _Linuxhippy
    Mitglied
    Reaktionen
    1
    Punkte
    376
    Beiträge
    64
    • 9. Mai 2007 um 20:37
    • #1

    Hallo,

    Ich würde einen Algorythmus (wenns geht in Java ausprogrammiert) suchen, welcher mir aus 2 Strings einen diff-String erstellt - mit dem ich dann den ersten patchen kann damit ich den zweiten draus bekomm.

    Im Grunde also eigentlich was rsync macht, nur für Strings :grinning_face_with_smiling_eyes:

    Ich habe schon eine Klasse gefunden welche exakt das macht was ich suche:

    Code
    String s1 = "Hello I am a very small string";
            String s2 = "Hella I am a very small ding";
    
    
            String difference = new StringDiff().exec(s1, s2);
            String patchedString = StringDiff.apply(s1, difference);
            --> s2.equals(patchedString) :-)

    Leider ist die Implementierung sehr, sehr schlecht (ich glaub theta(n^2)) und der Speicherverbrauch enorm.
    Wenn der String 1000 zeichen lang ist, wird ein 1000x1000-int[] angelegt (4MB) :-/

    Kennt ihr zufällig Implementierungen welche auch bei großen Datenmengen noch zuverlässig Arbeiten?

    Danke im Vorraus, lg Clemens

    To avoid horrible confusion, please pronounce the G in the word GNU when it is the name of this project.

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung