2

Unicode将字符分类为属于某个脚本,例如拉丁脚本

如何测试特定字符(代码点)是否在特定脚本中?

4

1 回答 1

3

Java 表示枚举中的各种 Unicode 脚本,Character.UnicodeScript例如Character.UnicodeScript.LATIN. 这些匹配Unicode 脚本属性

您可以通过将其代码点整数提交给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`. 
);

请参阅在 IdeOne.com 上运行的此代码。

错误的

仅供参考,Character该类可让您询问代码点是否表示字符 , , isDigit,等。isLetterisLetterOrDigitisLowerCase

于 2020-05-30T23:18:28.193 回答