为Java初学者复制字符串n次

时间:2013-11-22 02:36:57

标签: java string while-loop copy concatenation

我正在我的学校修读AP计算机科学课程,并想知道如何回答这个问题:

编写一个名为副本的方法,作为参数给出一个字符串s和一个非负整数n,返回由连接n个副本组成的字符串。

我试过这个,但你不能成倍增加字符串:

public String copies (String s, int n) {
   int copyCount;
   copyCount = 0;
      while ( n > 0 ) {
         s = s * n;
         n = n - 1;
    }
    return s;
}

我知道之前已经回答了类似的问题,但我正在寻找一种方法,只使用if语句和while循环。到目前为止,我们班上还没有做过任何事情,所以如果有人知道如何做到这一点,我们将非常感激。

更新:当我使用0作为n时,我还需要能够显示“”。

3 个答案:

答案 0 :(得分:1)

这样的事情应该做你需要的。

当n = 0时,更新显示“”

public String copies(String s int n) {
    StringBuilder sb = new StringBuilder();
    if (n > 0) {
        int i = 0;
        while (i < n) {
           sb.append(s);
           i++;
        }
    }
    return sb.toString();
}

答案 1 :(得分:1)

这是一种方法。

String copies(String s, int n) {
  StringBuilder builder = new StringBuilder();
  for (int count = 0; count < n; ++count)
    builder.append(s);
  return builder.toString();
}

我选择使用for代替一段时间(清洁度),但您应该可以轻松制作任何需要的mod:p

答案 2 :(得分:0)

如果你想创建String的int n副本,你应该尝试这样的

// Return a String, containing n copies of s.
public static String copies(String s, int n) {
  // More then 0?
  if (n > 0) {
    StringBuilder sb = new StringBuilder();
    int i = 0;
    while (i < n) {
      sb.append(s);
      i++;
    }
    return sb.toString();
  }
  // Just return the input.
  return s;
}