gpt4 book ai didi

string - java 8 String.chars() 是否可以正确处理 8 字节字符?

转载 作者:行者123 更新时间:2023-12-01 15:05:09 24 4
gpt4 key购买 nike

因为 java 8 String.chars() 返回一个 IntStream,如果你想要一个字符流,我找到的最佳答案是通过转换 i -> (char) i,我想知道是否有人知道这是否正常工作使用实际占用 8 个字节的 UTF-16 字符?

最佳答案

根据您对正确的定义:不,不是。

Java char 是一个 16 位的 UTF-16 代码单元。任何比它长的都表示为两个 char ( as "surrogate pairs" )。

String#length() 也是如此。它将返回 char 的数量,因此您的“长字符”将算作两个。

返回 IntStream 的原因是 just to not need to introduce a CharStream class .包含的数据仍将位于 char 16 位范围内。

但是,除了 chars() 之外还有 .codePoints(),它返回 32 位 Unicode 代码点(也作为 IntStream)。

关于string - java 8 String.chars() 是否可以正确处理 8 字节字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36878387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com