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

给定一个字符c和一个数n,如何创建一个由c重复的字符串组成的字符串?


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

时间:


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

如果可以,请使用Apache Commons的stringUtils lang :


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

如果你的字符是空白(生成空白填充的步骤),那么:


String spacePad(int n) {
 return String.format("%"+n+"s","");
}


public static String generateRepeatingString(char c, Integer n) {
 StringBuilder b = new StringBuilder();
 for (Integer x = 0; x < n; x++)
 b.append(c);
 return b.toString();
}

或Apache commons有一个可以添加的实用程序类。

下面是一个基于标准二进制算法的O(logn)方法:


public static String repChar(char c, int reps) {
 String adder = Character.toString(c);
 String result ="";
 while (reps > 0) {
 if (reps % 2 == 1) {
 result += adder;
 }
 adder += adder;
 reps /= 2;
 } 
 return result;
}

reps的负值返回空字符串。

...