java - 如何创建带有嵌套循环的半菱形形状?

标签 java nested-loops

目前,我的程序输出如下:

         p
        r r
       o o o
      g g g g
     r r r r r
    a a a a a a
   m m m m m m m

我希望它输出这个:

         pp
        r  r
       o    o
      g      g
     r        r
    a          a
   m            m

我不确定是否愿意这样做。我已经研究了很长一段时间了,似乎不知道如何首先让它在开头有一个双“p”,然后我不确定如何在这些字母之间创建空格,就像真实的输出一样。请帮忙。

这是我当前的代码:

String output = "";
    String str = "program";
    int length = str.length();
    for (int i=0 ; i<length; i++)
    {
        for (int k=length-1; k>i; k--)
        {
            System.out.print(" ");
        }
        for (int j=0; j<=i; j++)
        {
            System.out.print(" ");
        System.out.print(str.charAt(i));
        }
        System.out.println();
    }

谢谢!

最佳答案

您遇到的两个问题是在内循环中:

for (int j=0; j<=i; j++)
{
    System.out.print(" ");
    System.out.print(str.charAt(i));
}

您没有打印足够的空格(应该是 j < i * 2 ),并且您不想打印 str.charAt(i)在循环的每次迭代中。仅之前和之后:

String output = "";
String str = "program";
int length = str.length();
for (int i=0 ; i<length; i++)
{
    for (int k=length-1; k>i; k--)
    {
        System.out.print(" ");
    }
    System.out.print(str.charAt(i));
    for (int j=0; j< i*2; j++)
    {
        System.out.print(" ");        
    }
    System.out.print(str.charAt(i));
    System.out.println();
}

输出:

      pp
     r  r
    o    o
   g      g
  r        r
 a          a
m            m

关于java - 如何创建带有嵌套循环的半菱形形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53857104/

相关文章:

java - 初学者 JavaFX,跟踪随机生成的最大半径?

java - 如何在spring boot中重新加载外部属性文件而不需要重启tomcat?

java - BufferedReader 将什么字符解释为流的结尾?

带有生成器的 Python 嵌套循环不起作用(在某些情况下)?

python - 将参数从父函数传递给嵌套函数Python

java - 一种在不同语言/平台中使用 Openssl 的方法

python - 递归 - 在 Python 中创建 n 嵌套 "for"循环

c++ - 如何插入嵌套 vector 而不使迭代器无效

javascript - 当我在嵌套的 for 循环中放置 return false 时,为什么会自动返回?

java - 在 java 中,如何序列化未标记为 Serializable 的类?