Java Character offsetByCodePoints()示例
Character.offsetByCodePoints(char[] a, int start, int count, int index, int codePointOffset) 是Java中的一个内置方法,它返回给定的char子数组中的索引,该索引与给定的索引有codePointOffset代码点的偏移。start和count参数指定了char数组的一个子数组。在index和codePointOffset给定的文本范围内的未配对的代用品,每个算作一个码点。Character类的offsetByCodePoints(char[] a, int start, int count, int index, int codePointOffset)方法是静态的,因此它应该被静态地访问。一个非静态方法通常是通过声明method_name(参数)来调用。但在这种情况下,由于它是一个静态方法,在调用过程中,类的名称被附加为后缀。如果试图以非静态方式调用java offsetByCodePoints()方法,可能会遇到一个编译问题。
语法
public static int offsetByCodePoints(char[] a, int start, int count, int index,
int codePointOffset)
参数
- a: char数组
- start: 子数组中第一个字符的索引
- count: 子数组的长度,以字符数计
- index: 要偏移的索引
- codePointOffset: 以代码点为单位的偏移量
返回值: 该方法返回一个整数类型的值,即索引,在子数组中。
异常情况
- NullPointerException。如果a是空的。
- IndexOutOfBoundsException。如果start或count为负数,或者start+count大于给定数组的长度,或者index小于start或大于start+count ,或者codePointOffset为正数,并且从 index 开始到 start+count-1 结束的文本范围少于 codePointOffset 代码点,或者 codePointOffset 为负数,并且从start开始到index-1结束的文本范围少于codePointOffset代码点的绝对数值。
下面的程序说明了Character.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://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#offsetByCodePoints(char[],%20int,%20int,%20int,%20int)