java.lang.Character.toChars(int codePoint, char[] dst, int dstIndex) 指定字元(Unicode程式碼點),以它的UTF-16表示形式轉換。
如果指定的程式碼點為BMP(基本多文種平面或平面0)的值,同樣的值儲存在dst[dstIndex],返回1。
如果指定的程式碼點是一個輔助字元,它的替代值儲存在dst[dstIndex] (高代理)和dst[dstIndex+1] (低替代),2返回。
以下是java.lang.Character.toChars()方法的宣告
public static int toChars(int codePoint, char[] dst, int dstIndex)
codePoint - 一個Unicode程式碼點
dst - char,其中編碼點的UTF-16值儲存陣列
dstIndex - 開始索引,dst陣列,其中轉換的儲存值
此方法返回1,如果程式碼點為BMP程式碼點,返回2,如果程式碼點是一個增補程式碼點。
IllegalArgumentException - 如果指定的程式碼點不是一個有效的Unicode程式碼點
NullPointerException - 如是指定的 dst 為 null
IllegalArgumentException - 如果dst的索引為負或不小於dst.length,或者如果dstat dst的索引沒有足夠的陣列元素(次)來儲存所產生字元的值(次)。 (如果dstIndex等於dst.length-1和指定的程式碼點是一個輔助字元,高替代值不儲存在dst[dstIndex])
下面的例子顯示lang.Character.toChars()方法的使用。
package com.yiibai; import java.lang.*; public class CharacterDemo { public static void main(String[] args) { // create an int primitive cp and assign value int cp = 0x0036; // create an int primitive res int res; /** * create a char array dst and assign UTF-16 value of cp * to it using toChars method */ char dst[] = Character.toChars(cp); // check if cp is BMP or supplementary code point using toChars res = Character.toChars(cp, dst, 0); String str1 = "It is a BMP code point"; String str2 = "It is a is a supplementary code point"; // print res value if ( res == 1 ){ System.out.println( str1 ); } else if ( res == 2 ){ System.out.println( str2 ); } } }
讓我們來編譯和執行上面的程式,這將產生以下結果:
It is a BMP code point