检查角色属性

您可以根据字符的属性对其进行分类。例如,X 是大写字母,4 是十进制数字。检查字符属性是验证final用户 Importing 数据的常用方法。例如,如果您在线销售书籍,则您的订单 Importing 屏幕应验证数量字段中的字符是否全部为数字。

不习惯编写全局软件的开发人员可以通过将字符与字符常量进行比较来确定字符的属性。例如,他们可能会编写如下代码:

char ch;
//...

// This code is WRONG!

// check if ch is a letter
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
    // ...

// check if ch is a digit
if (ch >= '0' && ch <= '9')
    // ...

// check if ch is a whitespace
if ((ch == ' ') || (ch =='\n') || (ch == '\t'))
    // ...

前面的代码是“错误的”,因为它仅适用于英语和其他几种语言。要国际化前面的示例,请用以下语句替换它:

char ch;
// ...

// This code is OK!

if (Character.isLetter(ch))
    // ...

if (Character.isDigit(ch))
    // ...

if (Character.isSpaceChar(ch))
    // ...

Character方法依赖于 Unicode 标准来确定字符的属性。 Unicode 是支持世界主要语言的 16 位字符编码。在 Java 编程语言中,char值表示 Unicode 字符。如果使用适当的Character方法检查char的属性,则代码将适用于所有主要语言。例如,如果字符是中文,德文,阿拉伯文或其他语言的字母,则Character.isLetter方法返回true

以下列表提供了一些最有用的Character比较方法。 Character API 文档完全指定了方法。

  • isDigit

  • isLetter

  • isLetterOrDigit

  • isLowerCase

  • isUpperCase

  • isSpaceChar

  • isDefined

Character.getType方法返回字符的 Unicode 类别。每个类别对应于Character类中定义的常量。例如,getType返回字符 A 的Character.UPPERCASE_LETTER常量。有关getType返回的类别常量的完整列表,请参见Character API 文档。下面的示例演示如何使用getTypeCharacter类别常量。这些if语句中的所有表达式都是true

if (Character.getType('a') == Character.LOWERCASE_LETTER)
    // ...

if (Character.getType('R') == Character.UPPERCASE_LETTER)
    // ...

if (Character.getType('>') == Character.MATH_SYMBOL)
    // ...

if (Character.getType('_') == Character.CONNECTOR_PUNCTUATION)
    // ...