2017-06-23 6 views
-1

J'espère que vous pourrez m'aider à résoudre mon problème.Comparez une chaîne courte et longue dans JTextPane et écrivez les caractères de la longue chaîne dans une autre couleur

J'ai deux chaînes et les deux sont presque égaux.

String est comme: « Bonjour mon ami »

chaîne B est comme: « Bonjour mon ami! »

Maintenant, je veux comparer les deux chaînes et écrire le résultat dans une autre chaîne. Le résultat doit être la chaîne B avec tous les caractères différents de la chaîne A dans la couleur bleue.

Le "!" est par exemple. "!" pourrait être n'importe quel type de texte, y compris les espaces.

Je dois réaliser cela avec un JTextPane/StyledDocument.

Pouvez-vous me donner quelques exemples ou idées pour obtenir ceci?

Merci.

+0

Alors quel serait le résultat de votre exemple: "** Bonjour **! Mon! Ami!" ou "** Bonjour **! ** mon **! ** ami **"? Aka serait un «ami» à un autre indice être considéré comme une «différence» pour vous. –

+0

La resut doit être "Hello! My! Friend" mais le "!" sont bleus – morlog47

+1

Je me demande, est votre google cassé - j'ai trouvé [cet exemple] (https://stackoverflow.com/questions/22184448/surrounding-jtextpane-with-images/22185053#22185053) – MadProgrammer

Répondre

0

Avez-vous essayé d'écrire des caractères un par un, en appliquant un nouveau style à chaque caractère? Cela peut être sale mais c'est facile et cela résout un peu votre problème. Si c'est un problème algorithmique - je ne le pense pas, mais encore - vous devriez utiliser une troisième chaîne dans laquelle vous ajoutez tous les caractères de String A et quand vous rencontrez une différence, vous ajoutez le caractère de B et diminuez votre itérateur sur A.

Espérons que cela aide.

+0

Ceci a été posté comme réponse, mais il n'essaie pas de répondre à la question. Il devrait éventuellement être un edit, un commentaire, une autre question, ou complètement supprimé. –

+0

@BilalAhmed désolé mais je suis nouveau à stackoverflow, et je n'ai pas le droit de commenter. Aimerait ~ –