构建一个包含一千 'A' 个字符的字符串
Build a String with one thousand 'A' Characters
我有一个关于优化的简单问题。
假设我有一个函数应该 return 一个包含一千 'A' 个字符的字符串(数字是任意的,稍后可能会被参数化)。这样做的最佳方式是什么?
StringBuilder sb = new StringBuilder();
for(int i=0; i<1000; i++)
sb.append('A');
return sb.toString();
我已经使用 StringBuilder 提出了这个解决方案,但我觉得应该有更好的解决方案,某种 memcpy。
谢谢!
我想你可以用一个字节数组来做,然后把它转换成一个字符串,因为你已经知道大小了。
byte[] arr = new byte[1000];
for (int i = 0; i < arr.length; i ++) arr[i] = 65;
String str = new String(arr);
如果普通字节对您不起作用,那么您可以做 char[]
。如果你需要它不止于此,你可以将大小乘以 2 或每个字符所需的代码点数,然后再次使用 for 循环(但跳过你的字母占用的代码点数)
Arrays::fill
演示:
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
char[] arr = new char[1000];
Arrays.fill(arr, 'A');
String str = new String(arr);
System.out.println(str);
}
}
或者,String::repeat
演示:
public class Main {
public static void main(String[] args) {
String str = "A".repeat(1000);
System.out.println(str);
}
}
我有一个关于优化的简单问题。 假设我有一个函数应该 return 一个包含一千 'A' 个字符的字符串(数字是任意的,稍后可能会被参数化)。这样做的最佳方式是什么?
StringBuilder sb = new StringBuilder();
for(int i=0; i<1000; i++)
sb.append('A');
return sb.toString();
我已经使用 StringBuilder 提出了这个解决方案,但我觉得应该有更好的解决方案,某种 memcpy。
谢谢!
我想你可以用一个字节数组来做,然后把它转换成一个字符串,因为你已经知道大小了。
byte[] arr = new byte[1000];
for (int i = 0; i < arr.length; i ++) arr[i] = 65;
String str = new String(arr);
如果普通字节对您不起作用,那么您可以做 char[]
。如果你需要它不止于此,你可以将大小乘以 2 或每个字符所需的代码点数,然后再次使用 for 循环(但跳过你的字母占用的代码点数)
Arrays::fill
演示:
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
char[] arr = new char[1000];
Arrays.fill(arr, 'A');
String str = new String(arr);
System.out.println(str);
}
}
或者,String::repeat
演示:
public class Main {
public static void main(String[] args) {
String str = "A".repeat(1000);
System.out.println(str);
}
}