[Java] Sortie en spécifiant le format avec printf% s,% d,% f [Spécificateur de format]

Fonction qui spécifie le format d'affichage

Lors de l'utilisation d'une fonction avec f à la fin, telle que printf (), il est possible de spécifier le format d'affichage et la sortie.

Je ne l'ai jamais utilisé auparavant, mais je ne peux rien faire sans l'essayer moi-même, alors essayons-le tout en l'essayant.

Signification de chaque format

Prescripteur Type correspondant La description
%s string Chaîne de caractères de sortie
%d int Entier de sortie en notation décimale
%f float Sortie nombre réel

Exemple d'utilisation

public class MyApp {
		
	public static void main(String[] args) {
		int score = 50; // %d correspond
		double height = 165.8; // %f correspond
		String name = "mako"; // %s correspond

		System.out.printf("name: %s, score: %d, height: %f\n", name, score, height);
		System.out.printf("name: %-10s, score: %10d, height: %5.2f\n", name, score, height);

		String s = String.format("name: %-10s, score: %-10d, height: %5.2f\n", name, score, height);
		System.out.println(s);
	}
}

Résultat d'exécution


name: mako, score: 50, height: 165.800000
name: mako      , score:         50, height: 165.80
name: mako      , score: 50        , height: 165.80

Si je comprenais la signification de l'alphabet, je ne serais pas trop timide.

1.% s s est une chaîne 2. f dans% f est float 3. d en% d est décimal (décimal)

Dans cet esprit, ce n'était pas quelque chose que j'éviterais. Cependant, la façon d'écrire les arguments de printf semble un peu compliquée pour les débutants, mais il suffit de passer les noms de variables en arguments dans l'ordre.

Il est facile de comprendre si vous vous calmez et essayez-en quelques-uns vous-même.

Vous pouvez spécifier le chiffre d'affichage et justifié à droite et à gauche.

%10s //Préparez-vous pour 10 chiffres et justifiez à droite
%-10s //Préparez-vous pour 10 chiffres et justifiez à gauche
%10s //Préparez-vous pour 10 chiffres et justifiez à droite
%-10s //Préparez-vous pour 10 chiffres et justifiez à gauche
%5.3f //Afficher la partie entière à 5 chiffres et la partie minoritaire à 3 chiffres

Pour le dernier% 5.3f, je pense que cela n'a pas beaucoup de sens de spécifier la partie entière. .. ..

public static void main(String[] args) {
  double f = 12345.12345;
	System.out.printf("%f\n", f);
	System.out.printf("%.3f\n", f);
	System.out.printf("%3.3f\n", f);
  }
}

Résultat d'exécution


12345.123450
12345.123
12345.123

Si la partie entière dépasse le nombre de chiffres spécifié, elle est affichée telle quelle. Seules quelques pièces ont changé.

L'affichage est le même pour% .3f et% 3.3f.

Recommended Posts

[Java] Sortie en spécifiant le format avec printf% s,% d,% f [Spécificateur de format]
Format de la sortie du journal par Tomcat lui-même dans Tomcat 8
[Kotlin] Convertit ZonedDateTime en chaîne en spécifiant le format
Convertir un tableau bidimensionnel au format csv avec l'API Java 8 Stream
Traitez le mouvement détecté par le capteur humain HC-SR501 avec Raspberry Pi 3 et Java