Java.lang.Character.toChars() 方法

描述

java.lang.Character.toChars(int codePoint, char[] dst, int dstIndex) 将指定字符(Unicode 代码点)转换为其 UTF-16 表示形式。

如果指定的code point是BMP(Basic Multilingual Plane or Plane 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 数组,其中存储了 codePoint 的 UTF-16 值

  • dstIndex − 存储转换值的 dst 数组的起始索引


返回值

如果代码点是 BMP 代码点,此方法返回 1,如果代码点是补充代码点,则返回 2。


异常

  • IllegalArgumentException − 如果指定的 codePoint 不是有效的 Unicode 代码点

  • NullPointerException - 如果指定的 dst 为 null

  • IllegalArgumentException - 如果 dstIndex 为负数或不小于 dst.length,或者如果 dstIndex 处的 dst 没有足够的数组元素来存储结果 char 值 )。 (如果 dstIndex 等于 dst.length-1 并且指定的 codePoint 是补充字符,则高代理值不存储在 dst[dstIndex] 中。)


示例

下面的例子展示了 lang.Character.toChars() 方法的使用。

package com.tutorialspoint;

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