Java中如何获取特定字符(码点)对应的Unicode块或脚本枚举对象?
获取字符对应的UnicodeBlock和UnicodeScript枚举对象
获取Character.UnicodeBlock
要获取特定字符对应的Character.UnicodeBlock枚举实例,直接调用枚举类自身的of方法即可,该方法支持传入char类型字符或int类型的Unicode码点:
// 传入char类型字符 char ch = '中'; Character.UnicodeBlock block = Character.UnicodeBlock.of(ch); System.out.println(block); // 输出 CJK_UNIFIED_IDEOGRAPHS // 传入码点(适配补充平面字符) int emojiCodePoint = 0x1F600; // 笑脸emoji Character.UnicodeBlock emojiBlock = Character.UnicodeBlock.of(emojiCodePoint); System.out.println(emojiBlock); // 输出 EMOTICONS
此外Character类也提供了getUnicodeBlock方法可实现相同功能,比如Character.getUnicodeBlock(ch),但更推荐使用枚举自身的of方法,风格更统一。
获取Character.UnicodeScript
针对Character.UnicodeScript,同样通过枚举的of方法获取(Java 7及以上版本支持):
// 处理普通字符 char devaChar = 'अ'; // 梵文字符 Character.UnicodeScript script = Character.UnicodeScript.of(devaChar); System.out.println(script); // 输出 DEVANAGARI // 处理码点 int devaCodePoint = 0x0905; Character.UnicodeScript devaScript = Character.UnicodeScript.of(devaCodePoint); System.out.println(devaScript); // 输出 DEVANAGARI
内容的提问来源于stack exchange,提问作者Basil Bourque
相关产品推荐
相关产品推荐

