生成 n 个重复字符的字符串的最简单方法是什么?

新手上路,请多包涵

给定一个字符 c 和一个数字 n,我如何创建一个由 n 次重复的 c 组成的字符串?手动做太麻烦了:

 StringBuilder sb = new StringBuilder(n);
for (int i = 0; i < n; ++i)
{
    sb.append(c);
}
String result = sb.toString();

肯定有一些静态库函数已经为我做了这个?

原文由 foobar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答
int n = 10;
char[] chars = new char[n];
Arrays.fill(chars, 'c');
String result = new String(chars);

编辑:

提交这个答案已经 9 年了,但它仍然时不时地引起一些关注。与此同时,Java 8 引入了函数式编程特性。给定一个字符 c 和所需的重复次数 count 下面的一行代码可以执行与上面相同的操作。

 String result = IntStream.range(1, count).mapToObj(index -> "" + c).collect(Collectors.joining());

但是请注意,它比数组方法慢。除了最苛刻的情况外,它几乎不重要。除非它在某些每秒将执行数千次的代码中,否则不会有太大区别。这也可以与 String 而不是 char 一起使用来重复它多次,因此它更灵活一些。不需要第三方库。

原文由 G_H 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果可以,请使用 Apache Commons Lang 中的 StringUtils

 StringUtils.repeat("ab", 3);  //"ababab"

原文由 Tomasz Nurkiewicz 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题