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 后端 API 故障时使用此技能,尤其适用于以下任务:分析日志、跨 Controller、Service 和 Mapper 层追踪请求、定位异常根因、检查 SQL 执行或参数流转,以及生成简洁的诊断结论与修复方案。
-
isWhitespace包含控制字符(如'\n'、'\t'),isSpaceChar不包含这些,只匹配“分隔用空格类”字符(如不换行空格、全角空格等) -
isWhitespace对某些 Unicode 空白(如 U+1680 Ogham Space Mark)也返回 true,而简单== ' '完全无法覆盖
使用示例
直接传入一个 char 即可:
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。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










