Je dois écrire du code pour:
J'avais écrit le code:
public class tables {
public static void main(String[] args) {
//int[][] table = new int[12][12];
String table="";
for(int i=1; i<13; i++){
for(int j=1; j<13; j++){
//table[i-1][j-1] = i*j;
table+=(i*j)+" ";
}
System.out.println(table.trim());
table="";
}
}
}
Mais le problème vient du format de sortie. J'ai besoin de la sortie dans une matrice comme la mode, chaque nombre formaté à une largeur de 4 (les nombres sont alignés à droite et rayent les espaces de début/fin sur chaque ligne). J'avais essayé google mais je n'ai trouvé aucune bonne solution à mon problème. Quelqu'un peut-il m'aider?
Vous pouvez utiliser format()
pour formater votre sortie en fonction de vos besoins.
for(int i=1; i<13; i++){
for(int j=1; j<13; j++){
System.out.format("%5d", i * j);
}
System.out.println(); // To move to the next line.
}
Ou, vous pouvez également utiliser: -
System.out.print(String.format("%5d", i * j));
au lieu de System.out.format
..
Voici l'explication de comment %5d
fonctionne: -
%d
qui est un spécificateur de format pour les entiers ..5
dans %5d
signifie la largeur totale que prendra votre sortie. Donc, si votre valeur est 5, elle sera imprimée pour couvrir 5 espaces comme ceci: - ****5
%5d
est utilisé pour aligner à droite .. Pour aligner à gauche, vous pouvez utiliser %-5d
. Pour une valeur 5
, cela imprimera votre sortie sous la forme: - 5****
Dans mon exemple, le tableau contient des chaînes de caractères de longueur différente et, à cause de cela, je n'ai pas pu arranger la chaîne et d'autres chaînes de tableaux différents ne correspondent pas sur la console. avec un concept différent, je pourrais organiser ces tableaux sur la console mes codes sont comme ci-dessous.
package arrayformat;
/**
*
* @author Sunil
*/
public class ArrayFormat {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int[] productId = new int[]
{1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,};
String[] productName= new String[]{"Pepsi","kissan jam","Herbal
oil","Garnier man's","Lays chips","biscuits","Bournvita","Cadbury","Parker
Vector","Nescafe",};
String[] productType = new String[]{"Cold Drink","Jam","Oil","Face
wash","chips","Biscuits","Health
Supplement","Chocolate","Stationary","Coffee",};
float[] productPrice = new float[]{24,65,30,79,10,20,140,20,150,80,};
int productNameMaxlength=0;
int productTypeMaxlength=0;
for (String productName1 : productName) {
if (productNameMaxlength < productName1.length()) {
productNameMaxlength = productName1.length();
}
}
for (String productType1 : productType) {
if (productTypeMaxlength < productType1.length()) {
productTypeMaxlength = productType1.length();
}
}
for(int i=0;i<productType.length;i++)
{
System.out.print(i);
System.out.print("\t");
System.out.print(productId[i]);
System.out.print("\t");
System.out.print(productName[i]);
for(int j=0;j<=productNameMaxlength-productName[i].length
();j++)
{
System.out.print(" ");
}
System.out.print("\t");
System.out.print(productType[i]);
for(int j=0;j<=productTypeMaxlength-productType[i].length
();j++)
{
System.out.print(" ");
}
System.out.print("\t");
System.out.println(productPrice[i]);
}
}
}
and output is--
Sr.No ID NAME TYPE PRICE
0 1001 Cadbury Chocolate 20.0
1 1002 Parker Vector Stationary 150.0
2 1003 Nescafe Coffee 80.0
3 1004 kissan jam Jam 65.0
4 1005 Herbal oil Oil 30.0
5 1006 Garnier man's Face wash 79.0
6 1007 Lays chips chips 10.0
7 1008 biscuits Biscuits 20.0
8 1009 Bournvita Health Supplement 140.0
9 1010 Pepsi Cold Drink 24.0
Étant donné que je ne suis pas en mesure de répondre à ma question où j'ai posé ma question en raison du blocage pour poser la question et la réponse, je cite ma réponse et c'était un autre type de format de tableau que je ressens.
Le formatage de la sortie peut être effectué à l'aide de la méthode System.out.format ("", ""). Cette méthode contient deux paramètres d'entrée définissant d'abord le style de formatage et ensuite définissant la valeur à imprimer. Supposons que vous vouliez aligner à droite la valeur à n chiffres. vous passerez le premier paramètre "% 4d".
Pour l'alignement à gauche, utilisez -ve% -nd
Pour l'alignement à droite, utilisez + ve% nd
for(int i=1; i<13; i++){
for(int j=1; j<13; j++){
System.out.format("%4d", i * j); //each number formatted to a width of 4 so use %4d in the format method.
}
System.out.println(); // To move to the next line.
}