auparavant, vous avez vu l’utilisation des méthodesprint
Etprintln
pour imprimer des chaînes en sortie standard (System.out
). Puisque tous les nombres peuvent être convertis en chaînes (comme vous le verrez plus loin dans cette leçon), vous pouvez utiliser ces méthodes pour imprimer un mélange arbitraire de chaînes et de nombres., Le langage de programmation Java a d’autres méthodes, cependant, qui vous permettent d’exercer plus de contrôle sur votre sortie d’impression lorsque les nombres sont inclus.
Le printf et le format des Méthodes
Le java.io
le paquet inclut un PrintStream
de classe qui a deux méthodes de formatage que vous pouvez utiliser pour remplacer les print
et println
. Ces méthodes, format
et printf
, équivalent à un autre., Les familiers de la System.out
que vous avez été en utilisant un PrintStream
objet, de sorte que vous pouvez invoquer PrintStream
méthodes System.out
. Ainsi, vous pouvez utiliser format
ou printf
n’importe où dans votre code où vous avez déjà été à l’aide de print
ou println
., Par exemple,
System.out.format(.....);
La syntaxe de ces deux java.io.PrintStream
méthodes est le même:
public PrintStream format(String format, Object... args)
où format
est une chaîne qui spécifie la mise en forme pour être utilisé et args
est une liste de variables à imprimer à l’aide de cette mise en forme. Un exemple simple serait
le premier paramètre, format
, est une chaîne de format spécifiant comment les objets du deuxième paramètre, args
, doivent être formatés., La chaîne de format contient du texte brut ainsi que des spécificateurs de format, qui sont des caractères spéciaux qui formatent les arguments de Object... args
. (La notation Object... args
est appelée varargs, ce qui signifie que le nombre d’arguments peut varier.)
les spécificateurs de Format commencent par un signe de pourcentage ( % ) et se terminent par un convertisseur. Le convertisseur est un caractère indiquant le type d’argument à formater. Entre le signe de pourcentage ( % ) et le convertisseur, vous pouvez avoir des indicateurs et des spécificateurs facultatifs., Il existe de nombreux convertisseurs, des drapeaux, et des prescripteurs, qui sont documentées dans la java.util.Formatter
Voici un exemple de base:
int i = 461012;System.out.format("The value of i is: %d%n", i);
Le %d
indique que la variable est un entier décimal. Le %n
est un caractère de saut de ligne indépendant de la plate-forme. La sortie est:
The value of i is: 461012
Le printf
et format
méthodes sont surchargées., Chacun a une version avec la syntaxe suivante:
public PrintStream format(Locale l, String format, Object... args)
pour imprimer des nombres dans le système français (où une virgule est utilisée à la place de la décimale dans la représentation anglaise des nombres à virgule flottante), par exemple, vous utiliseriez:
un exemple
Le tableau suivant répertorie certains des convertisseurs= »28b2e8e596″>, qui suit le tableau.,
Converter | Flag | Explanation |
---|---|---|
d | A decimal integer. | |
f | A float. | |
n | A new line character appropriate to the platform running the application. You should always use %n , rather than \n ., |
|
tB | date & le temps de la conversiondes paramètres régionaux spécifiques nom complet du mois. | |
td, te | date & temps de conversion2-chiffres du jour dans le mois. td a des zéros de tête au besoin, te ne le fait pas. | |
ty, ty | une date& conversion temporellety = année à 2 chiffres, TY = année à 4 chiffres. | |
tl | date & temps de conversionheure dans l’horloge de 12 heures., | |
tM | date & temps de conversion minutes à 2 chiffres, avec des zéros si nécessaire. | |
tp | date & temps de conversionles paramètres régionaux en am/pm (en minuscule). | |
tm | date & temps de conversionmois sur 2 chiffres, avec des zéros si nécessaire., | |
tD | A date & time conversiondate as %tm%td%ty | |
08 | Eight characters in width, with leading zeroes as necessary. | |
+ | Includes sign, whether positive or negative. | |
, | Includes locale-specific grouping characters. | |
– | Left-justified.. | |
.3 | Three places after decimal point. | |
10.,3 | dix caractères en largeur, justifiés à droite, avec trois places après la virgule décimale. |
Le programme suivant montre une partie de la mise en forme que vous pouvez faire avec format
. La sortie est affichée entre guillemets doubles dans le commentaire intégré:
format
Et printf
. Plus de détails peuvent être trouvés dans la section Basic I/O
de la piste essentielle, dans la page « formatage ».,L’utilisation de
String.format
pour créer des chaînes est couverte en chaînes. la classe DecimalFormat
Vous pouvez utiliser la classejava.text.DecimalFormat
pour contrôler l’affichage des zéros de début et de fin, des préfixes et des suffixes, des séparateurs de regroupement (milliers) et du séparateur décimal. DecimalFormat
offre une grande flexibilité dans le formatage des nombres, mais cela peut rendre votre code plus complexe.,
L’exemple qui suit crée un DecimalFormat
objet myFormatter
, en passant par une chaîne de modèle de la balise DecimalFormat
constructeur., La balise format()
méthode DecimalFormat
hérite de NumberFormat
, est alors appelé par myFormatter
il accepte un double
valeur en argument et renvoie le nombre formaté dans une chaîne de caractères:
Voici un exemple de programme qui illustre l’utilisation de la balise DecimalFormat
:
La sortie est:
123456.789 ###,###.### 123,456.789123456.789 ###.## 123456.79123.78 000000.000 000123.78012345.67 $###,###.### $12,345.67
Le tableau suivant décrit chaque ligne de sortie.