如何打印java中指定的内容--->;

如何打印java中指定的内容--->;,java,Java,我想打印下面的图案 v v v v v 下面是我尝试过的代码 public static void main(String[] args) { final int numRows = 4; for (int row = 0; row < numRows; row++) { for (int preSpace = numRows - row; preSpace >= 0; preSpace--) { System.out

我想打印下面的图案

 v   v
  v v
   v
下面是我尝试过的代码

public static void main(String[] args)
{
 final int numRows = 4;
 for (int row = 0; row < numRows; row++) 
  {
     for (int preSpace = numRows - row; preSpace >= 0; preSpace--)
     {
         System.out.print(" ");
     }
     if (row > 0) 
       {
         System.out.print("v");
         for (int postSpace = 1; postSpace < row * 2; postSpace++)
          {
             System.out.print(" ");
           }
        }                   
   }
    System.out.println("v");
 }
有人能帮我解决这个问题吗?

@Tim的回答是正确的(只是他的print语句在循环之外,但在我可以编辑或评论之前,它被删除了。所以我发布了我自己的)

基本上你只需要反转你最外层的环

public static void main(String[] args) {
    final int numRows = 4;
    for (int row = numRows-1; row >= 0; row--) {
        for (int preSpace = numRows - row; preSpace >= 0; preSpace--) {
            System.out.print(" ");
        }
        if (row > 0) {
            System.out.print("v");
            for (int postSpace = 1; postSpace < row * 2; postSpace++) {
                System.out.print(" ");
            }
        }                   
        System.out.println("v");
    }
}
publicstaticvoidmain(字符串[]args){
最终整数=4;
对于(int行=numRows-1;行>=0;行--){
对于(int-presspace=numRows-row;presspace>=0;presspace--){
系统输出打印(“”);
}
如果(行>0){
系统输出打印(“v”);
对于(int-postSpace=1;postSpace
我会创建一个图案,这样你就可以轻松地画出你需要的任何东西

public static void main(String[] args)
    {
        // declare a 2D array and DRAW IT!
        char[][] pattern = 
            {{ 'v',' ',' ',' ','v'},
             { ' ','v',' ','v',' '},
             { ' ',' ','v',' ',' '}};

     for (int row = 0; row < pattern.length; row++) 
     {
         for (int col = 0; col < pattern[0].length; col ++)
         {
             System.out.print(pattern[row][col]);
         }
         System.out.println();  // \n at the end
     }
}
遵循这一原则,我会作弊并这样做:

public static void main(String[] args) {
  System.out.println("v   v");
  System.out.println(" v v");
  System.out.println("  v");
}
这可能不是练习的精神所在,但在软件开发中保持简单是一个非常重要的课程。简单、干净的代码=易于维护=更少的bug。

我为您解决了它:

final StringBuilder out = new StringBuilder("");

for (int row = 1; row <= numRows; row++) {
    for (int preSpace = row - 1; preSpace > 0; preSpace--) {
        out.append(" ");
    }

    if (row < numRows) {
        out.append("v");
    }

    if (row == numRows) {
        out.append("v");
    } 
    else {
        for (int midSpace = 2 - (row-1)*2; midSpace >= 0; midSpace--) {
            out.append(" ");
        }
    }

    if (row < numRows) {
        out.append("v");
    }

    for (int postSpace = row - 1; postSpace > 0; postSpace--) {
        out.append(" ");
    }

    out.append(System.lineSeparator());
}

System.out.print(out.toString());
final StringBuilder out=新StringBuilder(“”);
对于(int行=1;行0;预空间--){
out.追加(“”);
}
如果(行=0;midSpace--){
out.追加(“”);
}
}
如果(行0;postSpace--){
out.追加(“”);
}
out.append(System.lineSeparator());
}
System.out.print(out.toString());

您的代码似乎不起作用,我无法重现您给出的输出。如果它能工作,你应该能够简单地反转循环的迭代顺序,一切都会好起来。我已经使用了@tim代码,它工作正常。但没有给出我所需的输出。@amitmahajan你的答案很好……可惜你把它删除了。今天看来是你的幸运日。是的,我一整天都在努力,从一个非常老的问题中减去+10点声誉点数;至最终整数numRows=3;为了得到@Chester想要的东西。认真地我想他有个问题要解决。我肯定他不想在这个问题上使用Hello World程序。不完全是严肃的,但在我的职业中,作为一名Java开发人员,我看到了无数的代码示例,这些代码比它需要的复杂得多,并且用5行长的方法替换了100行长的方法,它们做同样的事情要简单得多。因此,关于保持简单的建议是真诚的。
public static void main(String[] args) {
  System.out.println("v   v");
  System.out.println(" v v");
  System.out.println("  v");
}
final StringBuilder out = new StringBuilder("");

for (int row = 1; row <= numRows; row++) {
    for (int preSpace = row - 1; preSpace > 0; preSpace--) {
        out.append(" ");
    }

    if (row < numRows) {
        out.append("v");
    }

    if (row == numRows) {
        out.append("v");
    } 
    else {
        for (int midSpace = 2 - (row-1)*2; midSpace >= 0; midSpace--) {
            out.append(" ");
        }
    }

    if (row < numRows) {
        out.append("v");
    }

    for (int postSpace = row - 1; postSpace > 0; postSpace--) {
        out.append(" ");
    }

    out.append(System.lineSeparator());
}

System.out.print(out.toString());