character.digit(char ch, int radix) 用于将字符按指定进制转为数值,radix 必须在 2–36 间,合法字符返回对应值,否则返回 -1。
character.digit() 是 java 中将单个字符按指定进制解析为对应数值的便捷方法,适用于 '0'–'9'、'a'–'z'、'a'–'z' 等合法数字字符(取决于进制上限)。
理解参数含义与合法范围
该方法签名是:public static int digit(char ch, int radix)。
-
ch:待转换的字符,如
'5'、'a'、'F' -
radix:目标进制,取值必须在
Character.MIN_RADIX(2)到Character.MAX_RADIX(36)之间 - 若字符在该进制下非法(如
'8'在二进制中无效),返回-1
常见进制转换示例
只需传入字符和进制数,方法自动处理大小写和数字映射:
-
Character.digit('7', 10)→7 -
Character.digit('a', 16)→10(小写 a 表示十进制 10) -
Character.digit('F', 16)→15(大写 F 同样有效) -
Character.digit('2', 2)→-1(二进制只接受 '0' 和 '1')
使用时需注意的细节
该方法不抛异常,但返回值需主动检查是否为 -1,避免误用非法字符:
- 空格、标点、超出进制范围的字母(如
'z'在 radix=16 下返回-1)均不被识别 - 它只处理单个字符,不能直接解析字符串(如 "1010" 需用
Integer.parseInt("1010", 2)) - 内部依据 Unicode 值判断:'0'–'9' 映射 0–9;'a'/'A'–'z'/'Z' 映射 10–35,但仅当
radix > 10且字符在该进制允许范围内才有效
简单安全调用建议
实际使用时可封装一层校验逻辑:
- 先确认
radix在 2–36 范围内 - 调用后判断返回值是否 ≥ 0,否则提示“非法字符或进制不匹配”
- 避免对非 ASCII 数字字符(如全角数字、中文数字)调用,结果恒为
-1
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











