考虑 Java 11 中的以下代码:
StringBuilder sb = new StringBuilder("one");
sb.append("δύο"); // "two"第一行创建一个StringBuilder使用 Latin1 编码器的代码(每个字符一个字节)。然后第二行使 StringBuilder 意识到它需要改用 UTF16 编码器,因此它在附加新的 UTF-16 字符之前将其当前内容复制到一个新数组中。
StringBuilder 类有一个构造函数重载,它接受一个初始容量参数,如果您已经知道要构建的字符串的所需大小,它旨在避免重新分配。但是如果你从一个英文字符串开始,然后附加一个外国字符串,这个特殊的构造函数重载就没有用了,因为它仍然重新分配字节数组。
有没有办法创建一个从一开始就使用 UTF16 的 StringBuilder 实例?
慕桂英3389331
catspeake
素胚勾勒不出你
青春有我
随时随地看视频慕课网APP
相关分类