如何创建一个打印字符串的函数?

时间:2013-09-12 06:43:10

标签: java

一个名为printIndented()的方法,它接受一个String,一个整数和一个布尔值。该 整数表示空格中左边距的缩进大小,所以 方法应该先p rint那很多空间。然后打印字符串。 然后,如果布尔值为true,则应打印换行符。所以,例如, 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);

5 个答案:

答案 0 :(得分:1)

这是我的版本:

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

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

我认为这个功能不需要返回任何东西。只返回size参数就会告诉调用者没什么新内容。

您可以在 Apache Commons Lang 库中找到StringUtils类。请参阅http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/StringUtils.html

如果没有StringUtils.repeat,您可以将第一行替换为:

for(int i = 0; i < size; i++) print(" ");

答案 1 :(得分:1)

由于这是一项功课,我不会向您展示完整的解决方案,但我会尽力指导您。

您应该打印size次空间,而不是这样做。相反,您一次打印""(这不是空格)。

提示:

  • 使用for loop - 打印空间(" "sizeString space = " ";另请注意,应将其命名为space,而不是spaces因为它只代表一个空间。
  • 新行表示为\n - 您可能还希望看到this
  • 当您检查booleantrue时,最好是if(n)而不是if(n == true)
  • return语句周围的括号是多余的,您可以删除它们。

答案 2 :(得分:0)

更改

String spaces = (""); 

String spaces = " ";

并在循环中创建print(spaces),以便打印空间等于整数size

  for(int i=0;i<size;i++){
         print(spaces);
    }

答案 3 :(得分: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
    }

}

答案 4 :(得分:0)

循环? We don't need no stinkin' loops!

public void printIndented(int size, String word, boolean n) {
    System.out.printf("%" + size + "s%s" + (n ? "%n" : ""), "", word);
}

* ducks *