Strings im JTextPane vergleichen und mit StyledDocument formatieren

morlog47

Mitglied
Hallo zusammen,

ich könnte evtl. Eure Hilfe gebrauchen und würde mich freuen, wenn Ihr mich unterstützen könnt.

Ziel ist es, dass zwei unterschiedliche Strings miteinander verglichen werden und die Unterschiede in blau markiert werden und das Ergebnis dann auf dem Textfeld dargestellt wird.

Zur Veranschaulichung:
String A: "Das ist ein Teststring"
String B: "Das23 ist ein! Teststring! Wirklich!"

Aussehen soll das Ergebnis dann wie folgt:
Das23 ist ein! Teststring! Wirklich!

Ich habe momentan echt keinen Ansatz dazu, daher auch keinen Beispielcode.
Vielleicht bekomme ich ja von Euch den richtigen Anstoß dazu...?

Vielen Dank für Eure Antworten schon einmal vorab.
Grüße!
 
Moin,
wo ist denn Dein Problem?
Beim Vergleichen, beim Einfärben oder bei Darstellen ?? 🙄
Vergleich: StringA.equals( StringB );
Einfärben: per HTML im Text
Darstellen: myTextField.setText( myString );

VG Klaus
 
Hi,
sowohl einfärben, als auch darstellen ehrlich gesagt 😉

Das Problem ist, das String A immer kürzer ist als String B und quasi nur die Zeichen, die bei String B vorhanden sind, eingefärbt werden sollen. Es soll dann nur der farbliche String B ausgegeben werden in dem JTextPane und Styled Document. Mit eqauls allein werde ich die Unterschiede doch nicht feststellen können, oder?

Sorry vielleicht ist das auch eine Anfängerfrage und im falschen Forum gestellt, aber verstehst du mein Dilemma?
Grüße!
 
Also du gehst deine beiden Strings immer Zeichen für Zeichen durch (bspw kannst du hier eine for-Schleife nehmen und dann jeweils einen Buchstaben mit der charAt(int pos); Methode vergleichen). Sollte der Vergleich gleich sein, setzt du die Farbe für dein styleddocument an der Stelle x auf schwarz, ansonsten blau. Das machst du so lange wie du Zeichen in deinem kürzeren String hast
 

Zurück
Oben