-2

文字列、整数、ブール値を取る printIndented() というメソッド。整数はスペースの左マージンからのインデントのサイズを表すため、メソッドは最初にそのスペースを印刷する必要があります。次に、文字列を出力する必要があります。次に、ブール値が真の場合、改行を出力する必要があります。たとえば、 次のようにprintIndented(3, "Hello", false) 出力します。

˽˽˽
Hello
...with no newline at the end.

私はこれで立ち往生しています。私のバージョンは不完全です:

int printIndented(int size, String word, boolean n) {
    String spaces = ("");

    print(spaces);

    print(word);
    if(n == true)  println("");    
    else 
    if(n == false)  print("");    
    return(size);
4

5 に答える 5

1

これは私のバージョンです:

void printIndented(int size, String word, boolean n)
{
    print(StringUtils.repeat(" ", size));

    print(word);
    if(n)
       println("");    
}

私が見たように、関数は何も返す必要はありません。パラメータを返すだけでsizeは、呼び出し元に新しいことは何もわかりません。

このStringUtilsクラスはApache Commons Langライブラリにあります。http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/StringUtils.htmlを参照してください。

がないStringUtils.repeat場合、最初の行を次のように置き換えることができます。

for(int i = 0; i < size; i++) print(" ");
于 2013-09-12T06:48:38.853 に答える
1

これは宿題なので、完全な解決策は示しませんが、ガイドしようと思います。

時空を印刷する必要sizeがありますが、そうしていません。""代わりに、 (スペースではない) 1 回印刷しています。

チップ:

  • for ループを使用する- スペース ( " ")size回を出力します (また、1 つのスペースのみを表すため、代わりにString space = " ";名前を付ける必要があることに注意してください。spacespaces
  • 新しい行は次のように表されます -これ\nも見たいかもしれません。
  • a が であるかどうかを確認するときbooleantrue、 のif(n)代わりに実行することをお勧めしますif(n == true)
  • ステートメントを囲む括弧returnは冗長であるため、削除できます。
于 2013-09-12T06:48:40.387 に答える
0

変化する

String spaces = (""); 

String spaces = " ";

そして、あなたprint(spaces)をループにして、スペースが整数に等しいように出力しますsize

  for(int i=0;i<size;i++){
         print(spaces);
    }
于 2013-09-12T06:48:11.277 に答える
0
void printIndented(int i, String s, boolean b) {
    for(int j = 0; j < i; j++){
        System.out.print(", ");//Comma is to see how many spaces in output
    }
    System.out.print(s);
    if(b){
        System.out.println();
        System.out.print("NewLine");//to see that new line was added
    }

}
于 2013-09-12T07:01:58.867 に答える