构建一个包含一千 '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);
    }
}