Java代码:输入格式校验及资源释放实现注册信息验证
以下是对这段代码的分析和可能的修改建议: 错误 1:缺少必要的资源释放。在使用 `Scanner` 后,应该调用 `sc.close()` 方法来释放资源,避免资源泄漏。 修改后的代码如下: ```java public static void checkPattern(String regex, String tip) { boolean flag; do { Scanner sc = new Scanner(System.in); String info = sc.next(); Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(info); if (!matcher.find()) { System.out.print(tip + "格式错误!请重新输入:"); flag = true; } else { break; } sc.close(); // 增加资源释放 } while (flag); } public class example { public static void main(String[] args) { System.out.print("请输入用户名(必须为 6 个以内的字符,只能包含字母、数字和下划线):"); String regex = "^[a-zA-Z0-9_]{1,6}$"; checkPattern(regex, "用户名"); System.out.print("请输入密码(必须为 12 个以内的字符,必须包含大小写字母、数字和特殊字符):"); regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&]).{1,12}$"; checkPattern(regex, "密码"); System.out.print("请输入邮箱:"); regex = "^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+$"; checkPattern(regex, "邮箱"); System.out.print("请输入手机号:"); regex = "^1[3-9]\\d{9}$"; checkPattern(regex, "手机号"); System.out.print("请输入身份证号:"); regex = "^[1-9]\\d{16}[\\dX]$"; checkPattern(regex, "身份证号"); System.out.println("恭喜您,注册成功!"); } } ``` ######[AI问答 | 499点数解答 | 2025-04-29 15:31:51]
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)407
- C++ 实现:从卫星导航 $gprmc 报文精准提取经纬度值(字节豆包 | 385点数解答 | 2025-01-08 03:43:54)458
- 卫星导航 GPRMC 报文解析:C++ 实现经纬度提取(字节豆包 | 346点数解答 | 2025-01-08 03:46:29)455
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)308
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1139
- Java:抽象类 Vehicle 及子类 Car、MotorBike 实战演示(讯飞星火 | 440点数解答 | 2024-06-06 23:18:54)312
- 用 Pandas 深度剖析数据:从读取到统计分析全流程实战(GPT | 642点数解答 | 2024-06-30 15:39:49)357
- 用 Pandas 深入分析招聘数据:从数据读取到可视化全流程解析(GPT | 1539点数解答 | 2024-06-30 15:56:50)371
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)345
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)313
- "Java Code: Uncovering Stock Statistics through CSV File Reading"(字节豆包 | 66点数解答 | 2024-11-13 15:31:04)320
- Java实体类与Mysql表设计:优化表名、字段长度及索引提升性能 (字节豆包 | 212点数解答 | 2024-12-24 10:11:54)286