在Java中格式化输出

时间:2012-10-07 15:42:34

标签: java

我想格式化数字,以便以适当的格式显示。在1-12时,左侧正确地显示1,因为它已经移动到另一个空间,因为将8推入格式。

错误的结果如下所示......( - )在这里充当空格,因为我无法附加图像。

--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);
            }
        }
    }

1 个答案:

答案 0 :(得分: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类的文档..