我想格式化数字,以便以适当的格式显示。在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);
}
}
}
答案 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类的文档..