Je travaille sur une implémentation d'un algorithme de plagiat de code source (algorithme de vannage) et j'ai un problème où j'ai besoin d'aide.Suivre la position originale de la chaîne transformée en Java
Exemple: J'ai une chaîne
String test="blahello,,,,/blatestbla7234///§"§$%"%$\n\n23344)§()(§$blablayeahbla";
et transformer cette chaîne à
test="blahelloblatestblablablayeahbla"
et de cette chaîne, je construis kgrams par exemple 5 grammes
blahe lahel ahell hello ellob llobl .... ahbla
I enregistrer les kgrams dans une liste de chaînes mais aussi sauvegarder les positions de départ et de fin du texte original de chaque kramme, de sorte que je puisse à la fin renvoyer chaque kgram à sa position originale.
EDIT:
Ma question serait de savoir comment puis-je obtenir la position de départ et à la fin d'un kgram Quelqu'un peut-il me aider? Avez-vous une idée? Merci d'avance.
Voulez-vous dire quelque chose comme ça? blahe.begin = 0, blahe.end = 4, lahel.begin = 1, lahel.begin = 5, ...? – wimdetr
Définissez une classe NGram avec toutes les propriétés dont vous avez besoin (par exemple, n, valeur, beginIndex, endIndex, etc.). Alors vos n-grammes sont des instances de NGram plutôt que des instances de String et vous pouvez transporter toutes les méta-données supplémentaires que vous pourriez trouver utiles. – Rob
Oh désolé ma question était trompeuse. Je l'ai édité. Je peux l'enregistrer dans une classe mais comment puis-je obtenir la position de début et de fin d'un kgram. J'ai transformé le texte original et beaucoup de caractères sont remplacés. Par exemple, je veux obtenir pour le karram ellob start pos: 4 et la position de fin 13 – vizero