Java - 从 unicode 转换为字符串?

Bra*_*hle 1 java string unicode character

我可以轻松创建一个 unicode 字符并使用以下代码行打印它

String uniChar = Character.toString((char)0000);
System.out.println(uniChar);
Run Code Online (Sandbox Code Playgroud)

但是,现在我想检索上面的数字,添加 3,并打印出数字 0003 对应的新 unicode 字符。有没有办法让我检索 unichar 的实际字符串?就像“\u0000”一样?这样我就可以只对“0000”进行子串,将其转换为 int,添加 3,然后反转整个过程。

T.J*_*der 5

我想您正在寻找String#codePointAt

返回指定索引处的字符(Unicode 代码点)。索引指的是 char 值(Unicode 代码单元),范围从 0 到 length()- 1。

如果给定索引处指定的 char 值在高代理项范围内,则后续索引小于此 String 的长度,并且后续索引处的 char 值在低代理项范围内,则补充代码点返回对应于该代理对的值。否则,返回给定索引处的 char 值。

例如(实时复制):

// String containing smiling face with smiling eyes emoji
String str = "";
// Get the code point
int cp = str.codePointAt(0);
// Show it
System.out.println(str + ", code point = U+" + toHex(cp));
// Increase it
++cp;
// Get the updated string (from an array of code points)
String updated = new String(new int[] { cp }, 0, 1);
// Show it
System.out.println(updated + ", code point = U+" + toHex(cp));
Run Code Online (Sandbox Code Playgroud)

toHex只是return Integer.toString(n, 16).toUpperCase();

输出:

,代码点 = U+1F60A
 
,代码点 = U+1F60B