确定Unicode代码点是否表示来自特定脚本(如拉丁脚本)的字符? [英] Identify if a Unicode code point represents a character from a certain script such as the Latin script?

查看:44
本文介绍了确定Unicode代码点是否表示来自特定脚本(如拉丁脚本)的字符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Unicode将字符归类为属于script,例如Latin script

如何测试特定字符(code point)是否在特定脚本中?

推荐答案

表示枚举中的各种unicode脚本,例如包括Character.UnicodeScript.LATIN。这些与Unicode Script Properties匹配。

您可以通过将字符的code point整数提交给该枚举上的of方法来测试该字符。

int codePoint = "a".codePointAt( 0 ) ; 
Character.UnicodeScript script = Character.UnicodeScript.of( codePoint ) ;
if( Character.UnicodeScript.LATIN.equals( script ) ) { … }

或者:

boolean isLatinScript = 
        Character.UnicodeScript.LATIN
        .equals( 
            Character.UnicodeScript.of( codePoint ) 
        )
;

用法示例。

System.out.println(
        Character.UnicodeScript.LATIN      // Constant defined on the enum.
        .equals(                           // `java.lang.Enum.equals()` comparing two constants defined on the enum.
            Character.UnicodeScript.of(    // Determine which Unicode script for this character.
                "😷".codePointAt( 0 )      // Get the code point integer number of the first (and only) character in this string.
            )                              // Returns a `Character.UnicodeScript` enum object. 
        )                                  // Returns `boolean`. 
);

查看此code run at IdeOne.com

False

仅供参考,Character类允许您询问代码点是否表示isDigitisLetterisLetterOrDigitisLowerCase等字符。

这篇关于确定Unicode代码点是否表示来自特定脚本(如拉丁脚本)的字符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆