2

適切な形式で表示されるように数値をフォーマットしたいと思います。現在、1-12の左側は、8をフォーマットに押し込んだために別のスペースに移動したため、1を除いて正しく表示されています。

間違った結果を以下に示します...画像を添付できないため、(-)はここでスペースとして機能します。

--1 * 8 = -8
-2 * 8 = 16
-3 * 8 = 24
-4 * 8 = 32
-5 * 8 = 40
-6 * 8 = 48
-7 * 8 = 56
-8 * 8 = 64
-9 * 8 = 72
10 * 8 = 80
11 * 8 = 88
12 * 8 = 96

私が望む結果を以下に示します...画像を添付できないため、(-)はここでスペースとして機能します。

--1 * 8 = --8
--2 * 8 = 16
--3 * 8 = 24
--4 * 8 = 32
--5 * 8 = 40
--6 * 8 = 48
--7 * 8 = 56
--8 * 8 = 64
--9 * 8 = 72
10 * 8 = 80
11 * 8 = 88
12 * 8 = 96

誰かがこれで私を助けることができれば私は感謝します...私を狂気に駆り立てています。

これまでの私のコードは次のとおりです。

  public class Main {

        public static void main(String [] args) {

            int end_value = 13;
            int result = 0;

            System.out.print("Enter a Number:");
            int num_input = BIO.getInt();

            for (int numberLoop = 1; numberLoop < end_value; numberLoop++) 
            {
                result = numberLoop * num_input;

                System.out.printf("%11s\n", numberLoop + " * " + num_input + 
                                                          " = " + result);
            }
        }
    }
4

1 に答える 1

3

個々の要素に書式を適用する必要があります:-

System.out.format("%3d * %4d = %5d\n", numberLoop, num_input, result);

%dまた、整数を出力するときに使用する必要があります。

%3dに置き換えられnumberLoopます。

%4dに置き換えられますnum_input

%5dに置き換えられますresult

そして、次のような出力が得られます:-

numberLoop(3 spaces) * num_input(4 spaces) = result(5 spaces)

%3d右揃え用です。%-3d左揃え用です。どちらでも使用できます。

を使用して、フォーマットされた文字列を文字列変数に格納することもできString.format()ます。後でその文字列変数を出力できます。

String result = String.format("%3d * %4d = %5d\n", numberLoop, num_input, result)

注:-その他のフォーマットオプションについては、 Formatterクラスのドキュメントを参照してください。

于 2012-10-07T15:44:49.820 に答える