0

文字列で逆ピラミッドを作成しようとしています。ループは、両端から 1 文字ずつ減算します。その右側だけが差し引かれています。左側でも同じようにするにはどうすればよいですか?各行の長さを正しく印刷するにはどうすればよいですか?

     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#substringString変数の内部データは置き換えません。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 に答える