繁体   English   中英

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

[英]How do I print a single character multiple times on one line?

这是我需要做的:

以相反的顺序,打印出前 num 个正整数,每个整数被打印的次数作为其大小。

基本上,我会以数字 9 为例,我需要在一行打印 9 个 9,在第二行打印 8 个 8,然后打印 7 个 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();

如果要在 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

我希望我明白你想要什么。

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

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

如果您运行 Java 11,我认为有一个从 StringUtils 继承的“repeat”方法

static void printReverse(int n) {

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

由于有类型转换,它并不比提出的双循环快,但它是单行的😊

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM