我想写一个函数
String getName(int codePoint) { // ???? }
它将返回给定代码点表示的字符的标准名称。例如
getName(0);
将返回字符串“null”和
getName(33);
将返回字符串“感叹号”。jdk里有没有关于这个的东西?
eivnm1vs1#
不,标准的jdk没有这些信息。它可以在各种方案中进行解码和编码,但在任何 Package 中包含所有名称都需要大量下载。正如所指出的,专业词汇工具可能会有所帮助。当心。这是一个830MB的下载。
xfyts7mz2#
unicode标准的一部分是unicodedata-.txt文件(从unicode.org下载不起作用),其中包含名称(以及读取方向、tolowercase和touppercase等):
0021;EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
所以呢 0x21 被unicode标准称为感叹号。这可以以某种形式隐藏在jre中的某个地方,因为它用于转换为小写和大写字符。
0x21
n3schb8v3#
ashalynd提到的词汇工具java6.0utf-82009版本看起来有一个get unicode名称特性。然而,在幕后,它正在使用icu项目的icu4j。isu4j有一个可能有用的ucharacter.getname()函数。
3条答案
按热度按时间eivnm1vs1#
不,标准的jdk没有这些信息。它可以在各种方案中进行解码和编码,但在任何 Package 中包含所有名称都需要大量下载。
正如所指出的,专业词汇工具可能会有所帮助。当心。这是一个830MB的下载。
xfyts7mz2#
unicode标准的一部分是unicodedata-.txt文件(从unicode.org下载不起作用),其中包含名称(以及读取方向、tolowercase和touppercase等):
所以呢
0x21
被unicode标准称为感叹号。这可以以某种形式隐藏在jre中的某个地方,因为它用于转换为小写和大写字符。
n3schb8v3#
ashalynd提到的词汇工具java6.0utf-82009版本看起来有一个get unicode名称特性。然而,在幕后,它正在使用icu项目的icu4j。isu4j有一个可能有用的ucharacter.getname()函数。