0

我正在尝试用字符串创建一个倒金字塔。循环从每一端减去一个字符。只有它的右侧被减去。我如何让它对左侧做同样的事情?我怎样才能让它正确打印每行的长度?

     int x = 0;

     int space = ' ';

     space = space + ' ';  

     int counter = fullName.length();

     for( x = 0; x < fullName.length()/2; x++ )
     {

         System.out.println( counter - x + " [" + fullName.substring( x, fullName.length() - x ) + "]" );

     }  
4

2 回答 2

2

String#substring不替换String变量的内部数据。请记住,String实例是不可变的。

您应该在打印String spaces之前打印一个变量fullName以添加空格:

String spaces = ""
for( x = 0; x < fullName.length()/2; x++ ) {
    System.out.println(spaces + fullName.substring(x, fullName.length()-x));
    spaces = spaces + " ";
}
于 2012-10-02T02:46:43.823 回答
0

如果你想要看起来像这样的东西:

triangle
 riangl
  iang
   an

除了从打印内容的末尾删除文本之外,您还需要确保在打印内容的开头添加空格。

for( x = 0; x < fullName.length()/2; x++ ) {
    System.out.print(counter - x + " [");
    for(int y = 0; y < x; y++) {
        System.out.print(" ");
    }
    System.out.println(fullName.substring( x, fullName.length() - x ) + "]" );
}
于 2012-10-02T02:52:40.790 回答