重复一次字符串 n 次
问题:创建一个包含 n
重复的 String s
的 String
。
琐碎的方法将重复连接 String
final int n = ...
final String s = ...
String result = "";
for (int i = 0; i < n; i++) {
result += s;
}
这创建了 n
个新的字符串实例,其中包含 1 到 n
重复的 s
,从而导致 O(
s.length() * n²) = O(
s.length() * (1+2+...+(n-1)+n))
的运行时间。
为了避免这种情况,应该使用 StringBuilder
,这样就可以在 O(
s.length() * n)
中创建 String
:
final int n = ...
final String s = ...
StringBuilder builder = new StringBuilder();
for (int i = 0; i < n; i++) {
builder.append(s);
}
String result = builder.toString();