我有一个包含12个数字的数组
int ary2[] = {3,5,9,11,15,18,22,23,30,31,35,39};
我想打印出2位数字和数字之间的空格。
打印输出示例如下:
3 5 9 11 15 18 22 23 30 31 35 39
这是我有多远。
for(int i = 0; i < ary2.length; i++)
{
System.out.printf("%-3s", ary2[i]);
}
我是新来的。 虽然我不会直接将其作为家庭作业提交,但它与我的家庭作业有关;因此,无论如何我都会使用那个家庭作业标签。
编辑:找到答案。
答案 0 :(得分:4)
我不太确定我是否理解这个问题。您的代码示例似乎已经这样做了。或者您想将它们视为数字(右对齐)?如果是这样,那么您需要%d
而不是(数字)%s
(字符串)。看看以下是否符合您的需求:
System.out.printf("%2d ", ary2[i]);
这将打印:
3 5 9 11 15 18 22 23 30 31 35 39
而不是原始代码的作用:
3 5 9 11 15 18 22 23 30 31 35 39
你只需要使用尾随空格;)
您可以在java.util.Formatter
API中找到更多格式规则。
答案 1 :(得分:0)
不确定问题是什么,阅读其他答案和评论,我怀疑你想要显示数字0-padded:
System.out.printf(" %02d", ary2[i]);
不是0-padded,2“place”,就像其他已写的那样:
System.out.printf(" %2d", ...
我把空格放在开头......但只是我的偏好
你可以使用其他一些角色作为空间的分隔符,看看发生了什么
像System.out.printf("^%2d", ary2[i]);
如果要避开行的开头或结尾处的空格,则必须拆分输出
System.out.printf("%2d", ary2[0]); // no space here
for(int i = 1; i < ary2.length; i++)
{
System.out.printf(" %2d", ary2[i]);
}
或做类似的事情(不是我的首选)
for(int i = 0; i < ary2.length; i++)
{
System.out.printf("%s%2d", (i == 0 ? "" : " "), ary2[i]);
}