You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何校验数字+字母格式输入的范围(1~34+A~F)

输入格式校验解决方案(134+AF)

直接将包含字母的输入转整数必然抛出NumberFormatException,因为输入不是纯数字字符串。要实现1A到34F的格式校验,推荐先用正则表达式匹配整体格式,再拆分验证数字和字母:

步骤说明

  • 用正则锁定输入格式:必须是1-34的数字 + A-F的大写字母,且无多余字符
  • 匹配成功后,拆分数字和字母部分,分别做范围校验(正则已做初步限制,二次校验更稳妥)

代码示例

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class InputChecker {
    public static void main(String[] args) {
        String input = "1A"; // 可替换为测试输入,比如"35A"、"0B"、"34G"等
        // 正则解释:^开头/$结尾确保全匹配;数字部分支持1-9、10-29、30-34;字母部分仅A-F
        Pattern pattern = Pattern.compile("^([1-9]|[12]\\d|3[0-4])([A-F])$");
        Matcher matcher = pattern.matcher(input);

        if (matcher.matches()) {
            int num = Integer.parseInt(matcher.group(1));
            String letter = matcher.group(2);
            
            // 双重验证数字范围和字母范围
            if (num >= 1 && num <= 34 && letter.matches("[A-F]")) {
                System.out.println("校验通过");
            } else {
                System.out.println("输入不符合要求");
            }
        } else {
            System.out.println("输入格式错误");
        }
    }
}

扩展说明

  • 如果需要支持小写字母a-f,只需将正则修改为^([1-9]|[12]\\d|3[0-4])([A-Fa-f])$,同时字母验证部分改为[A-Fa-f]
  • 正则已经限制了数字范围,二次校验是为了避免正则匹配逻辑出现疏漏,提升鲁棒性

内容的提问来源于stack exchange,提问作者noobcoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:07:21