Character.isWhitespace() 判断字符是否为 Unicode 定义的空白字符,包括空格、制表符、换行符、换页符、回车符及 SPACE_SEPARATOR/LINE_SEPARATOR/PAGE_SEPARATOR 类 Unicode 字符(如 U+00A0、U+200B、U+2029),但不包含全角空格(U+3000)。

Character.isWhitespace 是 Java 中用于判断一个字符是否属于“空白字符(whitespace)”的静态方法,它依据 Unicode 标准定义来识别,而不仅仅是常见的空格、制表符或换行符。
它判断哪些字符?
该方法返回 true 的字符包括:
- ASCII 空格(U+0020)
- 水平制表符(
'\t',U+0009) - 换行符(
'\n',U+000A) - 换页符(
'\f',U+000C) - 回车符(
'\r',U+000D) - Unicode 中其他被归类为 SPACE_SEPARATOR、LINE_SEPARATOR 或 PAGE_SEPARATOR 的字符(如不换行空格 U+00A0、零宽空格 U+200B、段落分隔符 U+2029 等)
和普通空格判断的区别
它比 c == ' ' 或 Character.isSpaceChar(c) 更宽泛:
当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。
-
isWhitespace包含控制字符(如'\n'、'\t'),isSpaceChar不包含这些,只匹配“分隔用空格类”字符(如不换行空格、全角空格等) -
isWhitespace对某些 Unicode 空白(如 U+1680 Ogham Space Mark)也返回 true,而简单== ' '完全无法覆盖
使用示例
直接传入一个 char 即可:
立即学习“Java免费学习笔记(深入)”;
System.out.println(Character.isWhitespace(' ')); // true
System.out.println(Character.isWhitespace('\t')); // true
System.out.println(Character.isWhitespace('\u2000')); // true(En Quad,Unicode 空格)
System.out.println(Character.isWhitespace('a')); // false
注意事项
该方法只接受 char(即基本类型),不能直接传入字符串或 null;若要检查字符串首尾空白,应配合 String.trim() 或 Character.isWhitespace 遍历每个字符;另外,它不识别全角空格(U+3000)——这个字符 不属于 isWhitespace 范围,但属于 isSpaceChar。

















