gpt4 book ai didi

java - 如果所有 Java 字符串都是 UTF-16 字符串,那么 char 数据类型的最大大小如何为 2?

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

如果 Java 中的字符串是 UTF-16,则 UTF-16 字符的大小可能为 4 个字节。因此 1 个 UTF-16 字符必须映射到 2 个字符。

这意味着字符串长度可能小于等效的 char[] 长度。

但事实并非如此。

Character x = new Character((char) 7000);
String s = new String(""+x+x+x);

byte [] ar = s.getBytes();
char [] arr = s.toCharArray();

字节数组的长度为 9。
char 数组的长度为 3。
那么 char 的大小怎么可能是 2 个字节呢?

所以我认为java中的char可能大于2个字节,具体取决于需要,这是正确的。

如果是的话,java中char的最大大小是多少?或者它是可变长度并且将来可能会达到无穷大?

最佳答案

String.getBytes() 调用不会返回 UTF-16 内部表示形式。它返回平台默认编码的字符串。在你的情况下,这很可能是 UTF-8 (不过,作为一个平台决定的东西,你需要检查以确定)。 (char)7000(Unicode 代码点 U+1B58 BALINESE DIGIT EIGHT)的 UTF-8 编码形式为 3 个字节 - E1 AD 98。因此 3 个字符需要 9 个字节。

关于java - 如果所有 Java 字符串都是 UTF-16 字符串,那么 char 数据类型的最大大小如何为 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39592777/

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