Bonjour, en testant les possibilités de MessageFormat,
je suis arrivé à l'option choice motif
Mon problème est le suivant :
une chaine : String texte = "Actuellement, le {0, date, long}, vous avez {1} message{1, choice, 1#|2#s}.";
MessageFormat : MessageFormat mess = new MessageFormat(texte);
les arguments : Object [] arguments = {new Date(),30};
la méthode format : String st = mess.format(arguments);
OK tout se passe bien
Ce qui ne fonctionne pas : je désire parser la chaine pour retrouver le tableau
d'arguments : si l'argument de départ est > = 2 --> OK ex : 30 (ds cet exemple)
si l'argument de départ est < 2 --> NOT OK : message erreur
Une Idée, Merci bcp
Voici le code
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
43
44
45
46
47
48
49 package tampons_jeter; import java.text.MessageFormat; import java.text.ParseException; import java.util.Date; public class Classe_MessageFormat { public static void main(String[] args) throws ParseException { String texte = "Actuellement, le {0, date, long}, vous avez {1} message{1, choice, 1#|2#s}."; // Méthode parse() //**************** System.out.println("Méthode parse()"); //Object [] arguments = {new Date(),30}; // resultat 2.0 Object [] arguments = {new Date(),1}; // java.text.ParseException: avec zéro OU 1 MessageFormat mess = new MessageFormat(texte); String st = mess.format(arguments); System.out.println(st); Object[] recup = mess.parse(st); for (Object object : recup) { System.out.println(object); } } } /* RESULTAT avec 30 **************** Méthode parse() Actuellement, le 30 août 2012, vous avez 30 messages. Thu Aug 30 00:00:00 CEST 2012 2.0 RESULTAT avec zéro OU 1 **************** Méthode parse() Actuellement, le 30 août 2012, vous avez 1 message. Exception in thread "main" java.text.ParseException: MessageFormat parse error! at java.text.MessageFormat.parse(Unknown Source) at tampons_jeter.Classe_MessageFormat.main(Classe_MessageFormat.java:23) */
Partager