如何在一行上多次打印单个字符?

时间:2020-11-02 11:26:57

标签: java

这是我需要做的:

以相反的顺序,打印出前num个正整数,并打印每个整数 次数作为其幅度。

基本上,我将以数字9为例,我需要在一行上打印9 9,在第二行上打印8 8,在7到1之间一直打印。

我以相反的顺序打印它,但是我不知道如何打印其大小。 现在是我的代码:

static void printReverse(int n) {

for (int reverse = n; reverse = 1; reverse--) {
  System.out.println(reverse);
}

System.out.println(); // Leaves space between the outputs
System.out.println();

3 个答案:

答案 0 :(得分:1)

如果要以1行打印所有内容,则需要从println更改为打印。 我添加了另一个for循环以在一行中打印数字,并在此循环后添加了换行符。

for (int reverse = 9; reverse >= 1; reverse--) {
  for (int i = 1; i <= reverse; i++)
    System.out.print(reverse);
  System.out.println();  // Line break after each number.
}

上面代码的输出:

999999999
88888888
7777777
666666
55555
4444
333
22
1

我希望我能清楚地知道你想要什么。

答案 1 :(得分:1)

此函数接受一个整数,并以相反的顺序输出每个整数作为其大小的次数。第一个循环负责减少数量,第二个循环解析幅度。每个数字都在新行中打印。

static void printReverse(int n) {
   for (int i = n; i > 0; i--) {
       for (int j = 0; j < i; j++) {
           System.out.print(i + " ");
       }
       System.out.println();
   }
}

这是输出:

n n n ... (n times)
n-1 n-1 ... (n-1 times)
n-2 n-2 ... (n-2 times)
...
3 3 3
2 2
1

答案 2 :(得分:1)

如果您运行Java 11,我认为是从StringUtils继承的method "repeat"

"02 November 2020 Staffline - BD5 8LZ £8.72 to £13.4 per hour" 
"02 November 2020 University of Bradford - Bradford, West Yorkshire £20,130 to £21,814 per year Fixed term 12 months"
"02 November 2020 Anlaby Window Cleaning Services Limited - Bradford, West Yorkshire" 
"01 November 2020 Household - Bradford, West Yorkshire £8.72 per hour" 

由于存在类型转换,它的速度不比建议的双循环快,而是单线的。