gpt4 book ai didi

java - java如何处理不适合2个字节的字符

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

我们知道java字符是2字节的Unicode字符。假设您使用 UTF-8 字符编码,则 Unicode 字符的大小可能超过 2 个字节,具体取决于您使用的字符。

我的问题是java如何处理这些占用超过2个字节的字符类型。在这种情况下,java 是否为字符分配超过 2 个字节,或者它做了其他什么事情?

请解释一下。

最佳答案

String 的源代码是公开可用的。除其他外,它还使用了 Character.toSurrogates(int, char[], int) 方法,该方法是这样实现的

static void toSurrogates(int codePoint, char[] dst, int index) {
// We write elements "backwards" to guarantee all-or-nothing
dst[index+1] = lowSurrogate(codePoint);
dst[index] = highSurrogate(codePoint);
}

String 有一个支持 char[]。当需要存储无法容纳 2 个字节的字符时,会将其存储在两个字符(4 个字节)中。显然,这被称为适当的,即。 String 方法知道它将代码点存储到哪个索引并递增它,以便下一个字符距 2 个位置。

关于java - java如何处理不适合2个字节的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20364712/

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