Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么是;抵销;在编程环境中是什么意思?_Java_String_Offset - Fatal编程技术网

Java 什么是;抵销;在编程环境中是什么意思?

Java 什么是;抵销;在编程环境中是什么意思?,java,string,offset,Java,String,Offset,在编程环境中,“偏移”是什么意思 它是指一开始还是一段距离 这个方法有什么作用?方法文档中的“未配对代理”是什么意思?根据JavaDoc String.offsetByCodePoints(int index, int codePointOffset) 返回此对象内的索引 从{@code index}的偏移量为 {@code codePointOffset}代码点 下面是一个用法示例 int num = 0; num = "Test_String".offsetByCodePoints(0,

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

它是指一开始还是一段距离


这个方法有什么作用?方法文档中的“未配对代理”是什么意思?

根据JavaDoc

String.offsetByCodePoints(int index, int codePointOffset)
返回此对象内的索引 从{@code index}的偏移量为 {@code codePointOffset}代码点

下面是一个用法示例

int num = 0;
num = "Test_String".offsetByCodePoints(0, 2); //num is 2
num = "Test_String".offsetByCodePoints(3, 2); //num is 5
num = "Test_String".offsetByCodePoints(9, 5); //Throws an exception since offset goes out-of-bounds

wikipedia中的一个示例,假设您有一个字符串“abcdef”,“d”字符将从字符“a”开始偏移3

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

通常,“偏移”是指从某个给定位置测量的某种形式的距离。这个职位可能是……的开始。。。某物但这并不一定

“偏移”的具体含义将取决于其使用的上下文。(理想情况下,其含义将从上下文中显而易见。)


String.offsetByCodePoints(int-index,int-codePointOffset)
方法做什么

此方法计算特定
字符
字符串
中的位置。
char
将是Unicode码点的第一个字符,即
codePointOffset
codepoints,位于
index
给出的位置之后

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

索引和结果都是正常的字符串索引值;i、 e.它们是
char
位置

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

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


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

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

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

另请参见:根据维基百科

数组或其他数据结构对象内的偏移量是一个整数,表示对象起点与给定元素或点(可能在同一对象内)之间的距离(位移)。只有当对象的所有元素大小相同(通常以字节或单词表示)时,距离的概念才有效

获取文件位置

您可以使用Java RandomAccessFile的getFilePointer()方法获取其当前位置。当前位置是RandomAccessFile当前所在字节的索引(偏移量)。下面是使用其getFilePointer()方法获取RandomAccessFile的当前位置的示例:

例如,让我们以java中RandomAccessFile中的Offest为例:

RandomAccessFile randomAccessFile = new RandomAccessFile("data/data.txt", "r");

 byte[] dest      = new byte[1024];
 int    offset    = 0;
 int    length    = 1024;
 int    bytesRead = randomAccessFile.read(dest, offset, length);

本例将一个字节序列读入dest byte数组,该数组作为参数传递给read()方法。read()方法将从RandomAccessFile的当前文件位置开始读取文件。read()方法将从偏移量参数提供的数组位置开始,最多从长度参数提供的字节数开始,将数据写入字节数组。此read()方法返回实际读取的字节数。

对于问题的第一部分,对于问题的第二部分,问题的正文与标题并不完全一致,因为稍后您会询问Java标准库中的方法。偏移量,只是某个轴距原点的距离,不多不少。
num=“Test_String”。offsetByCodePoints(3,2)//num为6
meSorry打印5个,“按1”排版。现在修好了。