character.isletter()识别unicode中所有“letter”类字符,包括英文字母、带重音拉丁字母(é、ñ)、希腊字母(α、Β)、西里尔字母(а、Б)、汉字(中)、日文平假名(あ)、韩文(한)及阿拉伯、希伯来等字母;不识别数字、标点、空白、下划线、全角字符等。

Character.isLetter 是 Java 中用于判断一个字符是否为字母的标准方法,它依据 Unicode 字符集定义来识别“字母”,不只是 ASCII 的 a–z 和 A–Z。
它识别哪些字符?
该方法返回 true 当且仅当字符被 Unicode 标准归类为“字母”(Letter),包括:
- 英文字母:a–z、A–Z
- 带重音的拉丁字母:é、ñ、ç、Ö、À 等
- 希腊字母:α、Β、Γ、δ
- 西里尔字母:а、Б、В、г
- 中文、日文、韩文的汉字(如:中、あ、한)——注意:汉字在 Unicode 中属于“Other_Letter”类别,所以 isLetter 返回 true
- 阿拉伯字母、希伯来字母等大多数书写系统的字母字符
它不识别哪些字符?
以下常见字符会返回 false:
- 数字:'0'–'9'
- 标点符号:'.'、'!'、'@'、','、'。'
- 空白字符:空格、'\t'、'\n'
- 下划线 '_'、美元符 '$'、井号 '#' 等符号
- 全角数字或符号(如:0、!)——它们属于 Unicode 的“Other_Symbol”或“Decimal_Number”,不是 Letter
怎么用?注意事项
直接传入一个 char(或自动装箱的 Character)即可:
System.out.println(Character.isLetter('a')); // true
System.out.println(Character.isLetter('5')); // false
System.out.println(Character.isLetter('α')); // true(希腊小写 alpha)
System.out.println(Character.isLetter('中')); // true(汉字)
System.out.println(Character.isLetter('0')); // false(全角零,U+FF10)
注意:
- 不能直接传入字符串,需先取单个 char(如 str.charAt(0)),否则编译错误
- 对 null 或非 char 类型(如 int 超出 char 范围)可能抛出异常或返回 false,建议确保输入是有效 char
- 如果只想判断 ASCII 字母(a–z/A–Z),可用
c >= 'a' && c = 'A' && c ,性能略高但范围窄
和 isLetterOrDigit、isAlphabetic 的区别
容易混淆的几个方法:
- isLetterOrDigit(c):true 当是字母 或 数字(含阿拉伯数字、罗马数字、汉字数字「一」「二」等)
- isAlphabetic(c):比 isLetter 更严格,只认 Unicode “Alphabetic” 类别的字符(排除部分兼容字符,但对常用文字基本一致;汉字仍返回 true)
- isLowerCase(c) / isUpperCase(c):只对已知有大小写的字母有效,对汉字、平假名等返回 false
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











