gpt4 book ai didi

java - 使用 charAt 方法反转字符串可能出现的问题

转载 作者:太空狗 更新时间:2023-10-29 22:48:25 26 4
gpt4 key购买 nike

我看到一条评论here所有带有 charAt 的解决方案都是错误的。我无法在互联网上完全理解和找到有关 charAt 的内容。当我查看源代码时,它只返回 char 数组中的一个元素。所以我的问题是,使用 charAt 是否有任何问题?

评论就是这样

Strictly speaking, all the solutions based on charAt are wrong, as charAt doesn't give you the "character at", but the "code unit at", and there are code units that are not characters and characters that need multiple code units.

最佳答案

不同的字符使用不同的字节数进行编码(使用 UTF-16 方案)。例如,“A”字符表示如下:

01000001

到目前为止一切顺利。

但是如果你有一个像𝔴这样的字符,你会遇到问题。它的 UTF-16 表示 (BE) 是:

11011000 00110101 11011101 00110100

然后 charAt 确实可以返回该字符的第二个代码单元。

参见 String#charAt 的 JDK 7 实现:

public char charAt(int index) {
if ((index < 0) || (index >= count)) {
throw new StringIndexOutOfBoundsException(index);
}
return value[index + offset];
}

关于java - 使用 charAt 方法反转字符串可能出现的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35988827/

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