Bonjour à tous,
Je travaille sur un portail en J2EE pour lequel je dois réaliser un chat. L'une des exigences fonctionnelles est d'avoir des smileys dans les messages échangés. Pour cela j'ai créer une classe utilitaire contenant les codes des smileys ainsi que les images associées:
Dans ma classe métier, j'ai créé une méthode qui doit permettre de remplacer les codes des smileys par la balise HTML correspondante:
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
35
36
37
38
39
40
41
42 public class ChatUtil { public static final String[] STRING_SMILEY_CODE = { ":/", ":-/", ":'(", ":$", ":)", ":-)", ":|", ":(", ":-(", ":o", ":O", ":p", ":P", ":d", ":D", ";)", ";-)" }; public static final String[] STRING_SMILEY_ICON = { "confused.gif", "confused.gif", "cry.gif", "embarassed.gif", "happy.gif", "happy.gif", "neutral.gif", "sad.gif", "sad.gif", "surprised.gif", "surprised.gif", "tong.gif", "tong.gif", "very_happy.gif", "very_happy.gif", "wink.gif", "wink.gif" }; }
Le problème est qu'à l'éxécution, une exception est remontée me disant qu'un bloc capturant n'est pas correctement fermé... En effet, certains smileys se terminent par une parenthèse ouvrante ou fermante. Je n'ai pas le code de l'exception sous la main, désolé ...
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 private List replaceSmileys(List someMessages) { for(int cptMsg = 0; cptMsg < someMessages.size(); cptMsg++) { Message messageObj = (Message) someMessages.get(cptMsg); String message = messageObj.getMessage(); for(int cptSmiley = 0; cptSmiley < ChatUtil.STRING_SMILEY_CODE.length; cptSmiley++) { Pattern smileyPattern = Pattern.compile(ChatUtil.STRING_SMILEY_CODE[cptSmiley]); Matcher smileyMatcher = smileyPattern.matcher(message); message = smileyMatcher.replaceAll("<img src=\"" + ChatUtil.STRING_SMILEY_ICON[cptSmiley] + "\" />"); } // ... } return someMessages; }
Pour remédier à cela, j'ai tenté d'escaper ces parenthèses par \\ mais bien que des smileys soient présents dans les messages récupérés, aucun match n'est trouvé... Sur ma page, c'est toujours le code du smiley qui est affiché et non son image associée
Quelqu'un aurait une solution SVP ?
Partager