如何将 *\u" 和控制台输出的 UTF-8 代码结合起来?(Java)

How can I combine *\u" and the UTF-8 code for console output? (Java)

我想将 "\u" 与包含十六进制代码的 String 结合起来,以便我可以在控制台中打印出一个 unicode 字符。

我试过类似的方法,但控制台只打印常规文本,例如 \uf600:

ArrayList<String> arr = new ArrayList<String>();
emoji.codePoints()
    .mapToObj(Integer::toHexString)
    .forEach((n) -> arr.add(n));  // arr will contain hex strings

for (int i = 1; i < arr.size(); i += 2) {
     System.out.println("\u" + arr.get(i));
}

在Java中,\u只存在于编译器中,作为一种方便,可以帮助您在源代码中添加unicode字符文字。如果在 运行 时创建一个包含 \u 后跟十六进制数字的字符串,则没有适当的机制将其转换为单个 char.

听起来您想将每个代码点分别转换为字符串。这是您可以做到这一点的一种方法:使用 Character.toChars 将代码点转换为 char 数组,然后从 char 数组构建一个新字符串:

ArrayList<String> arr = new ArrayList<String>();
emoji.codePoints().mapToObj(Character::toChars).map(String::new)
    .forEach(arr::add)