tl;博士
String s = Character.toString( 128_567 ) ;
细节
您要求提供 , 的Character
对象String
或CharSequence
.
Character
该类Character
实际上是legacy,仅仅是原始char
类型的对象包装器。该char
类型也是传统的,内部定义为 16 位数字,仅限于 Unicode 代码点的前 64K。Unicode 现在分配给字符的代码点数量是其两倍多,因此char
无法表示大多数字符。
所以我们不能为基本多语言平面Character
字符集之外的字符实例化一个对象。因此,作为一种解决方法,生成一个包含单个字符的。可以处理任何和所有 Unicode 字符,但不能。Character.toString( int )
String
String
Character
String
Character.toString( int )
要获取String
包含由 确定的单个字符的对象int
,请将 传递int
给Character.toString()
。
例如,我们使用U+1F637(十进制:128,567)FACE WITH MEDICAL MASK
处的表情符号字符。
// -----| input |----------------
String input = "" ; // FACE WITH MEDICAL MASK at code point U+1F637 (decimal: 128,567).
int codePoint = input.codePointAt( 0 ) ; // Returns 128,567.
System.out.println( "codePoint : " + codePoint ) ;
代码点:128567
将该int
原始变量转换为String
.
// -----| String |----------------
String output = Character.toString( codePoint ) ; // Pass an `int` primitive integer number.
System.out.println( "output : " + output ) ;
输出 :
或使用文字整数。
String output2 = Character.toString( 128_567 ) ; // Pass an integer literal.
System.out.println( "output2 : " + output2 ) ;
输出2:
请参阅在 IdeOne.com 上实时运行的代码。
CharSequence
上面的代码可以工作,String
就像CharSequence
.
CharSequence cs = Character.toString( 128_567 ) ; // Returns a `String` which is a `CharSequence`.
appendCodePoint
该类StringBuilder
提供了一种appendCodePoint
通过分配的 Unicode 代码点编号添加字符的方法。同样适用于线程安全StringBuffer
。