我正在尝试输出一行,看起来有点像这样:
1 2 3 4 5 6 7 8 9
每次数量增加时添加另一个空格。 我需要使用for循环,首选嵌套for循环。 到目前为止,这是我的代码(在运行时,即使使用方法调用也不会打印。)
public static void outputNine()
{
for(int x=1; x<=9; x++)
{
for(char space= ' '; space<=9; space++)
{
System.out.print(x + space);
}
}
}
我知道我做错了什么,但我对java很新,所以我不太确定是什么。谢谢你的帮助。
答案 0 :(得分:2)
您只能初始化space
一次,然后打印数字,并为每个数字打印空格:
char space = ' ';
for(int x=1; x<=9; x++)
{
System.out.print(x);
for(int i = 0 ; i < x ; i++)
{
System.out.print(space);
}
}
答案 1 :(得分:0)
您的循环使用的是' '
的ASCII值,这不是您想要的。您只需要计算当前的x
。用这个替换你的内循环:
System.out.print(x);
for (int s = 0; s < x; s++) {
System.out.print(" ");
}
答案 2 :(得分:0)
现在你正试图增加一个字母,这没有意义。您希望{{1}}是一个等于您需要的空格数的数字。
答案 3 :(得分:0)
你只需要一个循环。
参考:Simple way to repeat a String in java
for (int i = 1; i <= 9; i++) {
System.out.printf("%d%s", i, new String(new char[i]).replace('\0', ' '));
}
输出
1 2 3 4 5 6 7 8 9
或者更优化,
int n = 9;
char[] spaces =new char[n];
Arrays.fill(spaces, ' ');
PrintWriter out = new PrintWriter(System.out);
for (int i = 1; i <= n; i++) {
out.print(i);
out.write(spaces, 0, i);
}
out.flush();
答案 4 :(得分:0)
将该行视为由相同结构的9个部分组成:x-1
空格后跟x
,其中x
从1更改为9。
/*
0 space + "1"
1 space + "2"
2 spaces + "3"
...
*/
int n = 9;
for (int x = 1; x <= n; x++) {
// Output x - 1 spaces
for (int i = 0; i < x - 1; i++) System.out.append(' ');
// Followed by x
System.out.print(x);
}
这种方法的一个好处是你没有尾随空格。