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

2022-09-01 06:22:01

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

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

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


答案 1
int n = 10;
char[] chars = new char[n];
Arrays.fill(chars, 'c');
String result = new String(chars);

编辑:

这个答案已经9年了,但它仍然不时引起一些关注。与此同时,Java 8已经引入了函数式编程功能。给定一个字符和所需的重复次数,下面的单行可以执行与上述相同的操作。ccount

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

但请注意,它比数组方法慢。除了最苛刻的情况外,这在任何情况下都无关紧要。除非它存在于每秒执行数千次的代码片段中,否则它不会有太大的区别。这也可以与字符串而不是字符一起使用,以重复多次,因此它更加灵活。无需第三方库。


答案 2

如果可以的话,使用来自Apache Commons Lang的StringUtils

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