在编程环境中,“偏移”是什么意思?

2022-09-02 10:54:38

在编程环境中,“偏移”是什么意思?

它是指在开始还是通过距离?

String.offsetByCodePoints(int index, int codePointOffset) 方法有什么作用?方法文档中的“未配对代理项”是什么意思?


答案 1

在编程环境中,“偏移”是什么意思?它是指在开始还是通过距离?

通常,“偏移”是指从某个给定位置测量的某种形式的距离。这个职位可能是...东西。。。但事实并非如此。

“偏移”的具体含义将取决于使用它的上下文。(理想情况下,从上下文中可以明显看出含义。


该方法有什么作用?String.offsetByCodePoints(int index, int codePointOffset)

此方法计算特定在 .将是 Unicode 代码点的第一个字符,它是 给出的位置之后的代码点。charStringcharcodePointOffsetindex

(因此,在此上下文中,“偏移量”是指以 Unicode 码位测量的距离,距离给定代码单元的位置。

两者和结果都是正常的字符串索引值;即它们是位置。indexchar

重点...是当您将一个 Unicode 代码点序列视为一系列 Unicode 代码点时,您的代码需要考虑一个事实,即代码点可能由 1 个或 2 个值组成。Stringchar

要理解上述所有内容的含义,您可能需要对 Unicode、代码点和代码单元以及 UTF-16 以及 Java 如何对 Unicode 字符串进行建模进行一些背景阅读。


方法文档中的“未配对代理项”是什么意思?

Java 字符串表示 unicode 代码点> 65535 的字符作为 UTF-16 代理项字符。在格式正确的 UTF-16 字符串中,代理项成对出现,分别表示 Unicode 码位的高阶位和低阶位。

这句话的意思是,如果a包含未正确配对的代理项,则会将它们视为单独的代码点......用于计算码位。String

另请参阅:Java中的“代理项对”是什么?


答案 2

维基百科的一个例子,假设你有一个字符串“abcdef”,“d”字符的偏移量从字符“a”开始将有三个。

偏移(计算机科学)