Bonjour,
je suis débutant en java et j'aimerai connaitre l'equivalence de sprintf en JAVA.
Merci.
[ Modéré par Bulbo ]
Ajout d'un tag dans le titre
:arrow: Les Règles du Forum
Version imprimable
Bonjour,
je suis débutant en java et j'aimerai connaitre l'equivalence de sprintf en JAVA.
Merci.
[ Modéré par Bulbo ]
Ajout d'un tag dans le titre
:arrow: Les Règles du Forum
En java 1.3 tu peux faire un truc du genre (je remplace les %s seulement), tu peux remplacer String[] par Object si ce n'est pas que des chaines que tu veux remplacer :
En 1.4.2 tu as la méthode replaceFirst (je crois)...Code:
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 /** * * Retourne la chaîne de caractère identifiée par la clé. * @param pString nom de la clé. * @param pValues les valeurs à insérer dans la chaine * @return la chaîne associée. */ public static String getString(String pString, String[] pValues) { String preparedString = ""; String value = pString; int beginIndex = 0; int endIndex; int i = 0; endIndex = value.indexOf("%s", beginIndex); while (endIndex > 0) { if (i <= pValues.length) { preparedString += value.substring(beginIndex, endIndex); preparedString += pValues[i]; i++; beginIndex = endIndex + 2; endIndex = value.indexOf("%s", beginIndex); } else { endIndex = -1; LOGGER.error("erreur"); } } return preparedString; }
depuis java5... sinon, il n'y a pasCode:System.out.printf.printf()
http://java.sun.com/developer/techni...leases/j2se15/
Voir la classe java.text.MessageFormat également très utilisée pour remplacer des tokens (moi je l'utilise principalement en conjonction avec des resource bundle pour la localisation du programme).
Plus précisément, c'est la classe java.util.Formatter avec un StringBuffer/StringBuilder qu'il faut utiliser (En C sprintf() permet d'écrire dans un tableau de caractère, tandis que printf() écrit dans la sortie standard).Citation:
Envoyé par lunatix
Si tu n'as pas Java 5.0, une petite recherche sur Google te donnera plein de librairies externes qui permettent approximativement la même chose...
a++