You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Unicode code point整数List转换为Java String对象

List Unicode码点转String的实现方法

针对存储Unicode码点的List<Integer>,可以用以下两种Java原生方案构造对应的String对象,两种方案都支持包含增补字符(码点值大于0xFFFF)在内的所有合法Unicode码点:

方案1:使用String构造方法

先把List<Integer>转换为int类型的码点数组,直接调用String的对应构造方法即可:

// 示例场景2的代码实现
List<Integer> codePoints = "cat".codePoints().boxed().toList();
// 转换为int数组
int[] codePointArr = codePoints.stream().mapToInt(Integer::intValue).toArray();
// 构造字符串
String targetStr = new String(codePointArr, 0, codePointArr.length);

最终得到的targetStr就是值为cat的字符串,该方案Java 1.5及以上版本都支持。

方案2:使用StringBuilder遍历拼接(兼容性最优)

如果是不支持stream操作的低版本Java环境,可以手动遍历码点逐个拼接,性能也更优:

List<Integer> codePoints = "cat".codePoints().boxed().toList();
StringBuilder sb = new StringBuilder();
for (Integer codePoint : codePoints) {
    sb.appendCodePoint(codePoint);
}
String targetStr = sb.toString();

该方案同样Java 1.5及以上版本都支持。

注意:不要手动把每个码点强转为char拼接,char只能表示0-0xFFFF范围的BMP字符,遇到示例1中128054这类增补字符时会出现乱码。

内容的提问来源于stack exchange,提问作者Basil Bourque

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 07:42:03