Bonjour tout le monde.

Je cherche à remplacer un mot exact dans une chaine de caractère, mais j'ai un peu de mal.

En fait j'ai la chaine suivante "param23 + 12 + param2" (sans les guillemets) et j'ai également une Map avec la valeur de mes param. Map<String, Double> = [param2 15],[param23 9].
Je voudrais donc remplacer mes paramxx par leur valeurs respective.
Je n'arrive pas à trouver la regex qui me remplace (dans un replaceAll - Java 1.4 oblige) param2 et seulement param2.
En gros aujourd'hui mon code me renvoie ça : 153 + 12 + 15 car il remplace param2 dans param23... ce qui n'est pas correct.

Voici le susdit code si ça peut aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
    /**
     * Replaces the keys of the formula with their values in the map.
     * 
     * @param originalFormula
     *           the original formula as it is extracted from the database. The
     *           values to be replaced needs to be both prefixed and postfixed by
     *           a space. <i>e.g.<b> key1 key2 </b>instead of<b> key1key2
     * @param replacementMap
     *           a map which takes any Strings as keys and any Strings as values.
     *           <i>e.g. The operator ID as keys and the parameter names or the
     *           parameter IDs as values .</I>
     * 
     * @return the formula updated with the replacementMap values instead of its
     *         keys.
     */
    public static String updateFormula(String originalFormula, Map replacementMap)
    {
        String newFormula = originalFormula;
 
        List keys = new ArrayList();
        keys.addAll(replacementMap.keySet());
 
        for (int i = 0; i < keys.size(); i++)
        {
            if (keys.get(i) != null)
            {
                newFormula = newFormula.replaceAll(keys.get(i).toString(), replacementMap.get(keys.get(i)).toString());
            }
        }
 
        consoleLogger.debug("updateFormula(" + originalFormula + ") -> " + newFormula);
 
        return newFormula;
    }