如何在Java中反转这种模式?

时间:2015-03-27 04:16:23

标签: java

所以我想打印这种模式:

******* 
****** 
***** 
**** 
*** 
**
*

到目前为止,这是我的代码:

import java.util.*;

public class DO
{
   public static void main(String[] args)
   {

   final int BASE_SIZE = 8;

   for (int r = 0; r < BASE_SIZE; r++)
  {
   for (int c = 0; c < (r + 1); c++)
   {
      System.out.print("*");
   }
   System.out.println();
  }
 }

如何反转当前正在打印的模式,以便获得我刚刚展示给您的模式?

3 个答案:

答案 0 :(得分:5)

我会用StringBuilder实现它。从最长的行开始,在循环中减去一个字符,直到StringBuilder为空。像

这样的东西
StringBuilder sb = new StringBuilder("*******");
while (sb.length() > 0) {
    System.out.println(sb);
    sb.setLength(sb.length() - 1);
}

答案 1 :(得分:1)

无需更改外部循环,只需将内部循环更改为:

for (int c = BASE_SIZE; c > r; c--)

所以:

    for (int r = 0; r < BASE_SIZE; r++)
    {
        for (int c = BASE_SIZE; c > r; c--)
        {
            System.out.print("*");
        }
        System.out.println();
    }

答案 2 :(得分:0)

for(int c = r ; c > 0 ; c--)
    System.out.print("*");
相关问题