gpt4 book ai didi

java - 如何在 Java 中通过其 (unicode) 名称获取字符?我需要 Character.getName(int codePoint) 的反转

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

如何使用 Unicode 名称在 Java 中查找字符或 int 代码点?

例如,如果

Character.getName('\u00e4')

返回 "LATIN SMALL LETTER A WITH DIAERESIS",如何执行反向操作(即从 "LATIN SMALL LETTER A WITH DIAERESIS" '\u00e4') 使用“纯”Java?

编辑:为了阻止我想要或不想要的评论的洪流,这是我在 Python 中会做的事情:

"\N{LATIN SMALL LETTER A WITH DIAERESIS}" # this gives me what I want as a literal

unicodedata.lookup("LATIN SMALL LETTER A WITH DIAERESIS") # a dynamic version

现在,问题是:在 Java 中做同样的事情。

而且,顺便说一句,我不想​​“打印 unicode 转义符”——实际上获取 char 的十六进制很容易,但我想要一个带有给定名称的 char。

换句话说我想做与Character.getName(int)相反的事情。

最佳答案

ICU4J图书馆可以在这里帮助你。它有一个 UCharactergetCharFromName以及其他相关方法,可以将各种类型的字符名称字符串映射回它们所代表的 int 代码点。

但是,如果您使用的是硬编码字符名称(即源代码中引用的字符串文字),那么进行一次翻译会更有效 - 使用 \u 转义符源代码并在必要时添加带有全名的注释——而不是每次都在运行时产生解析名称表的成本。如果字符名称来自读取文件或类似文件,那么显然您必须在运行时进行转换。

关于java - 如何在 Java 中通过其 (unicode) 名称获取字符?我需要 Character.getName(int codePoint) 的反转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23671346/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com