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

Java中如何检查字符串是否符合“字母字母数字数字”格式?

Java字符串格式校验与自定义异常实现

正则表达式选择

String.matches()方法完全可以满足你的需求,我们需要使用正则表达式^[A-Za-z]{2}\\d{2}$来匹配"字母字母数字数字"的格式,各部分含义:

  • ^:匹配字符串起始位置,确保从开头就符合规则
  • [A-Za-z]{2}:匹配恰好2个大小写英文字母
  • \\d{2}:匹配恰好2个数字(Java中正则的\d需要转义为\\d)
  • $:匹配字符串结束位置,避免字符串包含多余字符

修正自定义异常类

你的自定义异常类存在不规范的地方,建议调整为符合Java异常使用习惯的写法,让异常本身携带错误信息,而非在构造方法中直接打印:

class FormatException extends Exception {
    public FormatException() {
        super("Incorrect format!");
    }
}

(注:类名首字母大写符合Java命名规范)

完善主逻辑代码

在主方法中添加格式校验逻辑,不符合规则时抛出自定义异常并处理:

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        String user;
        Scanner scanner = new Scanner(System.in);

        System.out.print("Enter your String: ");
        user = scanner.nextLine();

        // 格式校验与异常抛出
        if (!user.matches("^[A-Za-z]{2}\\d{2}$")) {
            try {
                throw new FormatException();
            } catch (FormatException e) {
                System.err.println(e.getMessage());
                // 可选:异常后终止程序或执行其他处理逻辑
                System.exit(1);
            }
        }

        System.out.println("String format is valid!");
        scanner.close();
    }
}

class FormatException extends Exception {
    public FormatException() {
        super("Incorrect format!");
    }
}

补充说明

  • 若仅需匹配小写字母,可将正则改为^[a-z]{2}\\d{2}$;仅匹配大写字母则用^[A-Z]{2}\\d{2}$
  • String.matches()底层基于Pattern和Matcher实现,对于这类简单格式校验,性能和易用性都能满足需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:10:31