酷代码 AI
菜单
全部AI  /  热门  /  AI问答
服务商

public static class 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

以下是修改后的代码: ```java import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class CheckPatternExample { public static void checkPattern(String regex, String tip) { boolean flag = true; Scanner sc = new Scanner(System.in); while (flag) { String info = sc.next(); Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(info); if (!matcher.find()) { System.out.print(tip + "格式错误!请重新输入:"); } else { flag = false; } } sc.close(); } 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("恭喜您,注册成功!"); } } ``` 修改之处: - 给 `flag` 变量初始化为 `true`,确保循环能正常开始。 - 代码整体的可读性和格式进行了一定优化。 [2025-04-29 15:33:18 | AI问答 | 510点数解答]

相关提问