私はコードを書く必要があります:
私はコードを書きました:
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="";
}
}
}
しかし、問題は出力形式にあります。私は出力をマトリックスのような方法で必要とします。各数値は4の幅にフォーマットされます(数値は右揃えされ、各行の先頭/末尾のスペースを取り除きます)。私はgoogleを試しましたが、私の問題に対する良い解決策は見つかりませんでした。誰かが私を手伝ってくれる?
format()
を使用して、必要に応じて出力をフォーマットできます。
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.
}
または、以下を使用することもできます:-
System.out.print(String.format("%5d", i * j));
代わりに System.out.format
..
方法%5d
機能:-
%d
は整数のフォーマット指定子です。5
%5d
は、出力がとる幅の合計を意味します。したがって、値が5の場合、次のように5つのスペースをカバーするように出力されます。-****5
%5d
を使用して右揃え .. 左揃えの場合、%-5d
。値5
、これは出力を次のように出力します:-5****
私の例では、配列に異なる長さの文字列が含まれているため、文字列を配置できず、別の配列の他の文字列がコンソールで一致しませんでした。別のコンセプトで、これらの配列をコンソールに配置することができました。私のコードは次のとおりです。
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
質問と回答をブロックするために質問をしているところ、私の質問に答えることができないので、私は私の答えを引用していますが、これは私が感じる別の種類の配列形式でした。
出力のフォーマットは、System.out.format( ""、 "")メソッドを使用して実行できます。このメソッドには、最初にフォーマットスタイルを定義し、次に印刷する値を定義する2つの入力パラメーターが含まれます。 n桁の値を右揃えにしたいとします。最初のパラメーター "%4d"を渡します。
左揃えの場合は-ve%-ndを使用
右揃えの場合は+ 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.
}