Stringvergleich

Hallo zusammen!

Ich habe folgendes Problem:
Zwischen zwei Strings möchte ich vergleichen, ob ein INSERT oder REMOVE von Zeichen stattgefunden hat.

Ich habe das Problem im Moment nur annäherungsweise gelöst, indem ich den alten Text wortweise mit dem neuen vergleiche.
Wenn ein Wort nicht mehr vorkommt, hat ein REMOVE stattgefunden, wenn im neuen eines vorkommt, das nicht im alten enthalten ist, ein INSERT.

Aber das ist noch nicht optimal, hierfür müsste man beide Strings zeichenweise vergleichen.

Gibt es für dieses Problem schon eine Lösung?

Viele Grüße
Philipp

Auch hallo.

Ich habe folgendes Problem:
Zwischen zwei Strings möchte ich vergleichen, ob ein INSERT
oder REMOVE von Zeichen stattgefunden hat.

Ich habe das Problem im Moment nur annäherungsweise gelöst,
indem ich den alten Text wortweise mit dem neuen vergleiche.
Wenn ein Wort nicht mehr vorkommt, hat ein REMOVE
stattgefunden, wenn im neuen eines vorkommt, das nicht im
alten enthalten ist, ein INSERT.

INSERT und REMOVE als bool’sche Variable definieren.
Eigentlich gibt es nur 3 Situationen:

  • String1 lexikalisch > als String2
  • String1 == String2
  • String1 lexikalisch

Naja, ganz so einfach ist die Lösung wohl leider nicht.
Ich möchte die Strings ja nicht insgesamt vergleichen, sondern schon genau wissen, ob Zeichen eingefügt oder entfernt wurden.

Es geht allgemein darum, die Java-Events insert und remove bei einem DocumentListener zu simulieren.

z.B. Ausgangsstring:
Ich baue ein Hause.

neuer String:
Ich ein Haus. -> REMOVE

Ich kein Haus. -> REMOVE, INSERT

etc.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Moien

Mit der normalen java-API kann man das nicht einfachso machen. Da musst du selbst ran. Fang mit einem Levenstein-Aglo an. Die Resultat-Matrix kann man auf deine Fälle untersuchen (aber ich weiss nicht mehr genau wie …).

cu