ィ 什么时候这不起作用? System.out.println("\u" + "30-6ren">
gpt4 book ai didi

java - 为什么这不起作用字符串 a = "\u"+ "30A0";?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:47:16 26 4
gpt4 key购买 nike

为什么这样做...

System.out.println("\u30A3");      output  ->   ィ

什么时候这不起作用?

System.out.println("\u" + "30A0");       output  ->  invalid unicode

关于我还能怎么做的任何想法?

那是因为我在下面有这段代码,可以自动生成片假名 Unicode 编号,这样我就可以快速从片假名语言中获取任何字符,但它似乎无论如何都不起作用。

ArrayList<String> symbols = new ArrayList<>();
for (int i = 0; i < 6; i++) {
for (int k = 0; k < 16; k++) {
if (k < 10) {
symbols.add("\u30" + (char) (i + 65) + k);
} else {
symbols.add("\u30" + (char) (i + 65) + (char) (k - 10 + 65));
}
}
}

最佳答案

这不起作用,因为 \u 转义序列的处理 is done very early during the compilation process .这意味着您不能像在第二个示例中尝试的那样连接转义序列位。

要将整数代码点(例如 0x30A0)转换为 char,您可以使用 Character.toChars() .

关于java - 为什么这不起作用字符串 a = "\u"+ "30A0";?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25221596/

26 4 0