Java - Character offsetByCodePoints() 方法



描述

Java 的 Character offsetByCodePoints() 方法用於在給定的 char 子陣列中檢索相對於給定索引由程式碼點偏移量偏移的索引。

子陣列在 char 陣列中指定,透過從某個起始索引開始計算字元。

文字範圍內的未配對代理應被視為每個程式碼點。

此方法以兩種多型形式出現,具有相同的返回型別但引數不同。

語法

以下是 Java Character offsetByCodePoints() 方法的語法

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

(or)

public static int offsetByCodePoints(CharSequence seq, int index, int codePointOffset)

引數

  • a − char 陣列

  • start − 子陣列第一個 char 的索引

  • count − 子陣列的 char 長度

  • index − 要偏移的索引

  • seq − 字元序列

  • codePointOffset − 程式碼點偏移量

返回值

此方法返回子陣列中的索引

獲取程式碼點偏移量示例

以下示例演示了 Java Character offsetByCodePoints(char[] a, int start, int count, int index, int codePointOffset) 方法的使用。我們建立了一個 char 陣列並用 char 值初始化。使用 offsetByCodePoints() 方法,我們檢索了偏移量並列印了結果。

package com.tutorialspoint;

public class CharacterDemo {
   public static void main(String[] args) {

      // create a char array c and assign values
      char[] c = new char[] { 'a', 'b', 'c', 'd', 'e', 'f' };

      // craete 2 int primitives start, count and assign values
      int start = 1;
      int count = 5;

      // create an int primitive res
      int res;

      // assign result of offsetByCodePoints on subarray of c to res
      res = Character.offsetByCodePoints(c, start, count, 2, 4);
      String str = "The index within the subarray of c is " + res;

      // print res value
      System.out.println( str );
   }
}

輸出

讓我們編譯並執行以上程式,這將產生以下結果:

The index within the subarray of c is 6

獲取程式碼點偏移量示例

以下示例演示了 Java Character offsetByCodePoints(CharSequence seq, int index, int codePointOffset) 的使用。我們建立了一個 CharSequence 變數並用一個字串初始化。使用 offsetByCodePoints() 方法,我們檢索了偏移量並列印了結果。

package com.tutorialspoint;

public class CharacterDemo {
   public static void main(String[] args) {

      // create a CharSequence seq and assign value
      CharSequence seq = "Hello World";

      // create an int primitive res
      int res;

      // assign result of offsetByCodePoints on seq to res
      res = Character.offsetByCodePoints(seq, 3, 8);
      String str = "The index within the char sequence seq is " + res;

      // print res value
      System.out.println( str );
   }
}

輸出

讓我們編譯並執行以上程式,這將產生以下結果:

The index within the char sequence seq is 11

從數字 char 陣列獲取程式碼點偏移量示例

以下示例演示了 Java Character offsetByCodePoints(char[] a, int start, int count, int index, int codePointOffset) 方法的使用。我們建立了一個 char 陣列並用 char 值初始化。使用 offsetByCodePoints() 方法,我們檢索了偏移量並列印了結果。

package com.tutorialspoint;

public class CharacterDemo {
   public static void main(String[] args) {
      char[] c = new char[] { '0', '1', '2', '3', '4', '5' };
      int start = 1;
      int count = 3;
      int result = Character.offsetByCodePoints(c, start, count, 1, 2);
      System.out.println("The index within the subarray of c is " + result);
   }
}

輸出

編譯並執行上述程式後的輸出如下所示:

The index within the subarray of c is 3

在從 char 陣列獲取程式碼點偏移量時遇到 IndexOutOfBoundsException 示例

在某些情況下,此方法也會丟擲異常。在此示例中,我們將看到方法丟擲 IndexOutOfBoundsException 的場景。

public class CharacterDemo {
   public static void main(String[] args) {
      char[] c = new char[] { '0', '5', '2', 'a', 'z', '/' };
      int start = 0;
      int count = 3;
      int result = Character.offsetByCodePoints(c, start, count, 2, 4);
      System.out.println("The index within the subarray of c is " + result);
   }
}

異常

編譯並執行以上程式後,獲得的輸出如下:

Exception in thread "main" java.lang.IndexOutOfBoundsException at java.lang.Character.offsetByCodePointsImpl(Character.java:5388)
at java.lang.Character.offsetByCodePoints(Character.java:5372)
	at CharacterDemo.main(CharacterDemo.java:10)

在從 char 陣列獲取程式碼點偏移量時遇到 NullPointerException 示例

現在,讓我們看看方法丟擲 NullPointerException 的另一種場景。

public class CharacterDemo {
   public static void main(String[] args) {
      char[] c = new char[2];
      c = null;
      int start = 0;
      int count = 0;
      int result = Character.offsetByCodePoints(c, start, count, 0, 0);
      System.out.println("The index within the subarray of c is " + result);
   }
}

異常

編譯並執行以上程式,輸出將顯示為:

Exception in thread "main" java.lang.NullPointerExceptionat java.lang.Character.offsetByCodePoints(Character.java:5368)at CharacterDemo.main(CharacterDemo.java:11)
java_lang_character.htm
廣告