Character.isDigit()用于判断单个字符是否为'0'–'9',返回true仅当是ASCII数字字符;不识别负号、小数点或全角数字;校验多位字符串需遍历或正则匹配"[0-9]+"。

直接用 Character.isDigit() 判断单个字符是否为数字字符('0' 到 '9')即可,它返回 true 仅当该字符是 Unicode 数字字符,对 ASCII 数字 '0'–'9' 完全适用。
校验单个字符输入
从控制台读取一个字符后,传入 Character.isDigit() 即可判断:
- 使用
Scanner的next().charAt(0)或nextLine().charAt(0)获取首字符(注意处理空输入) - 调用
Character.isDigit(ch),返回true表示是 '0'–'9' 中的数字字符 - 该方法不识别负号、小数点、字母数字(如全角数字、罗马数字),只认标准数字字符
完整示例代码
以下是一个安全读取并校验单字符的典型写法:
<font color="#0066cc">Scanner sc = new Scanner(System.in);<br>System.out.print("请输入一个字符:");<br>String input = sc.nextLine().trim();<br>if (input.length() == 0) {<br> System.out.println("输入为空!");<br>} else {<br> char ch = input.charAt(0);<br> if (Character.isDigit(ch)) {<br> System.out.println("'" + ch + "' 是数字字符(0–9)");<br> } else {<br> System.out.println("'" + ch + "' 不是数字字符");<br> }<br>}</font>
注意与 parseInt() 的区别
Character.isDigit() 只做字符层面判断,和数值转换无关:
立即学习“Java免费学习笔记(深入)”;
- 它不关心字符是否在整数范围内,也不解析值;例如 '5' →
true,'a' →false - 不要和
Integer.parseInt()混用——后者要求整个字符串可转为整数,且会抛异常 - 若需验证“输入是否为纯一位数字”,用
isDigit()最简洁可靠
扩展:校验多位数字字符串
如果用户可能输入多位(如 "123"),而你想确认**整个字符串是否只含数字字符**,可用循环或正则:
- 循环方式:遍历每个字符,全部满足
Character.isDigit(c)才算合格 - 正则方式:
str.matches("\d+")(注意\d可能匹配全角数字,严格限制 ASCII 时建议用"[0-9]+") - 不推荐直接用
isDigit()校验字符串——它只接受char类型参数


















