Replace en masse - Java - Programmation
Marsh Posté le 25-11-2022 à 12:44:31
Bonjour,
Si tu veux qu'on t'aide tu dois commencer par poster ce que toi tu as fait et pas juste l'énoncé (cf les règles de la section). Surtout que là ça sent énormément le devoir scolaire.
Marsh Posté le 25-11-2022 à 14:32:53
Je suis arrivé sur le forum en 2004 et je bossais depuis quelques années déjà, je n'ai plus fait de devoirs scolaires depuis plusieurs années maintenant :-)
J'ai simplifié le cas à l’extrême pour ne laisser que l'idée sur laquelle je me pose des questions mais l'algo est plus complexe. J'ai également modifié les données pour que cela soit le plus simple possible (en réalité ce sont notamment des articles de lois).
Je me dis qu'il y a peut être une autre solution que de spliter puis de recoller, en utilisant des regex peut-être ...?
Marsh Posté le 25-11-2022 à 15:50:11
Le split | pour ton entrée de valeur à remplacer, pas sur qu'on puisse faire mieux...
Par contre il doit y avoir une fonction qui prend des tableaux pour les remplacements, mais désolé je ne connais pas Java ! ^^
https://www.google.com/search?q=jav [...] lace+array
Un truc du genre : http://www.java2s.com/example/java [...] 22fee.html ?
Marsh Posté le 25-11-2022 à 16:23:54
Une implémentation naïve semble bien fonctionner, je vois pas trop comment ça pourrait être beaucoup plus simple.
Code :
|
Si tu veux une solution plus robuste, il manque pas de bibliothèques qui font de l'interpolation ou du templating de chaînes dans le monde Java.
Marsh Posté le 25-11-2022 à 17:19:45
Merci , je vais probablement utiliser le public static String replaceAll(String src, String[] replace, String[] by)
Marsh Posté le 25-11-2022 à 17:58:26
Tu vas devoir générer un tableau de $ de la même taille que ton nombre de substitution, et à chaque itération le machin va recréer une chaîne pour rien.
Je ne sais pas comment sont gérées en mémoire les mutations de chaînes en java, mais la solution de DDT me parait plus propre...
Marsh Posté le 24-11-2022 à 15:20:24
Yo
J'ai:
String listeParametre="Pierrot|vache|rouge";
String resultat="Bonjour $, la $ est $";
Comment faire pour avoir :
resultat="Bonjour Pierrot, la vache est rouge"
En gros, j'ai x éléments séparés par un pipe dans listeParametre que je dois mettre dans l'ordre à la place des $ dans resultat
Il faut que cela fonctionne bien sûr avec des $ en début et fin de chaine. Le nombre de $ n'est pas connu. Par contre je suis sûr d'avoir exactement le même nombre de $ que de paramètres.
J'ai fait un truc avec des split et des boucles mais j'ai l'intuition qu'il y a un truc beaucoup plus simple