Comment mettre en forme un tableau avec printf() en Java?
Je sais comment le format des variables individuelles, mais je ne sais pas comment mettre en forme un tableau avec printf()
. Je veux afficher mon programme avec chaque numéro de la queue les uns avec les autres à la verticale, avec chaque numéro sur chaque ligne avec la même quantité d'espaces. Ci-dessous est un exemple de ce que je veux dire avec des numéros différents:
1.1 2.2 3.3 4.4 5.5
1 2 3 4 5
Voici le code que j'ai pour essayer d'afficher les nombres:
//create array
String[] tempsArray2 = temps2.toArray(new String[0]);
//for-each loop
for(String ss : tempsArray2){
//display ss to make sure program works correctly
System.out.printf("%40s", ss);
Quand je le lance, le programme affiche comme ceci:
run:
70.3 70.8 73.8 77.0 80.7 83.4 84.5 84.4 83.4 80.2 76.3 72.0
69 67 66 64 66 69 67 67 70 69 69 70BUILD SUCCESSFUL (total time: 0 seconds)
Comment puis-je résoudre ce problème afin que je puisse le format de l'ensemble du tableau une fois avec un seul System.out.printf();
déclaration, ou dois-je format un par un? Toute aide sera grandement appréciée.
- Pouvez-vous nous dire quelle est la dimension de votre tableau à l'est? Aussi, savez-vous que la longueur maximale d'un certain nombre pourrait être dans ce tableau?
- Si votre tableau n'a qu'une dimension exactement comment envisagez-vous de diviser la sortie sur des lignes distinctes?
- J'ai mis à jour ma réponse ci-dessous avec les informations les plus utiles sur les champs alignement.
- Pourquoi les gens jusqu'à droit de vote de cette question lorsqu'il n'est pas clair, il n'a pas répondu à des demandes d'éclaircissement, et toutes les réponses sont des suppositions à cause de cela?
- Et maintenant, vous êtes ignorant les commentaires et les réponses à cette question et re-poser la même question ici. Ce n'est pas juste pour les gens qui ont tout mis en œuvre pour essayer de vous aider.
Vous devez vous connecter pour publier un commentaire.
Si vous voulez que le contrôle précis de formatage, vous devez le faire pour chaque élément individuellement. Il est
Arrays.toString()
, mais il n'offre aucun contrôle sur les éléments individuels.Si vous imprimez plusieurs tableaux et vous voulez leur sortie "line-up", vous devrez choisir les formats de sortie de sorte qu'il arrive, par exemple:
Sorties:
Que exemple, pourrait ne pas être à la forme précise que l'on va, mais le point est, vous avez le contrôle de cette façon. Si vous voulez faire l'alignement à gauche des nombres, des champs plus vastes, si vos types sont des Chaînes de caractères ou des flotteurs ou des doubles ou des entiers, etc.
Il est parfois utile de travailler sur la largeur de champ et le remplissage des espaces par exemple un éditeur de texte ou sur papier d'abord. E. g. ci-dessus, où nous essayons d'aligner les points décimaux et les chiffres entre les chars et les nombres entiers, je voudrais d'abord travailler sur le format d'une largeur fixe de l'éditeur (comme dans un commentaire ou dans le bloc-notes), par exemple:
Ensuite, vous pouvez plus facilement voir comment cela se traduit pour les spécificateurs de format:
FFF.FF
est"%6.2f "
.III
est"%3d "
.Consultez la documentation de
Formateur
pour plus d'informations sur les codes de format, vous pouvez passer àSystem.out.printf()
.En supposant que vous travaillez avec un tableau 2D rempli avec des doubles, vous pouvez faire quelque chose de ce genre pour obtenir des résultats formatés:
La
-
aligne les nombres à gauche et les met dans les colonnes de nice. Le7
est la largeur de champ et dit printf comment large pour faire vos colonnes. Le.3
est la précision des nombres (nombre de décimales) qui sera imprimé. Enfin, le f signifie flotteur qui est le spécificateur de format pour les doubles. Vous pouvez vérifier la syntaxe de java printf dans les docs.