📜  Java中的字符.offsetByCodePoints() 和示例

📅  最后修改于: 2022-05-13 01:55:03.152000             🧑  作者: Mango

Java中的字符.offsetByCodePoints() 和示例

字符.offsetByCodePoints(char[] a, int start, int count, int index, int codePointOffset)是Java中的一个内置方法,它返回给定 char 子数组中的索引,该索引与给定索引偏移 codePointOffset 代码点。 start 和 count 参数指定 char 数组的子数组。由 index 和 codePointOffset 给出的文本范围内的未配对代理分别计为一个代码点。
字符类的 offsetByCodePoints(char[] a, int start, int count, int index, int codePointOffset) 方法是静态的,因此应该静态访问。
非静态方法通常通过声明 method_name(argument) 来调用。但是在这种情况下,由于它是一个静态方法,因此在调用期间会附加类名作为后缀。如果尝试以非静态方式调用Java offsetByCodePoints() 方法,则可能会遇到编译问题。

句法:

public static int offsetByCodePoints(char[] a, int start, int count, int index,
int codePointOffset)

参数:

  • a:字符数组
  • start:子数组第一个字符的索引
  • count:以字符为单位的子数组的长度
  • index:要偏移的索引
  • codePointOffset:代码点的偏移量

返回值:该方法返回一个整数类型的值,即子数组中的索引。

例外:

  • NullPointerException:如果a为空。
  • IndexOutOfBoundsException:如果startcount为负,或者如果start + count大于给定数组的长度,或者如果index小于start或大于start + count ,或者如果codePointOffset为正且文本范围以index开头并且以start + count - 1结尾的代码点少于codePointOffset ,或者如果codePointOffset为负数并且以 start 开始并以 index - 1 结尾的文本范围少于 codePointOffset 代码点的绝对值。

下面的程序说明了字符.offsetByCodePoints() 方法:

//Java program for offsetByCodePoints() method
import java.lang.*;
public class gfg {
   public static void main(String[] args) {
      // Creating a char array c_arr and assigning values
      char[] c_arr = new char[] {'g','e','e','k','s'};
  
      // Integer primitives 
      int s = 1;
      int c= 4;
  
      // Creating and assigning result of offsetByCodePoints
      // On subarray of c_arr to r
     int r = Character.offsetByCodePoints(c_arr, s, c, 1, 2);
  
      String st = "The index within the subarray is " + r;
  
      System.out.println(st);
   }
}
输出:
The index within the subarray is 3

参考:https: Java/lang/ 字符.html#offsetByCodePoints(char[],%20int,%20int,%20int,%20int)