如何将 *\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)
我想将 "\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)