如何为社保号验证程序添加continue或exit输入选项?
社保号验证程序添加循环功能实现
完全可以通过while语句实现这个需求,核心思路是用一个循环控制变量维持程序运行,每次验证完成后接收用户指令,决定继续或退出。另外注意你原来的正则表达式存在语法问题——Java字符串里的\d需要转义为\\d,否则会编译报错,下面是修改后的完整代码:
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Socialsec { public static void main(String[] args) { Scanner in = new Scanner(System.in); boolean isRunning = true; // 修正正则表达式的转义问题 String socSecPattern = "(\\d\\d\\d)-(\\d\\d)-(\\d\\d\\d\\d)"; Pattern ssNum = Pattern.compile(socSecPattern); while (isRunning) { System.out.println("Enter a Social Security number in the format DDD-DD-DDDD, where D is a digit: "); String userInput = in.nextLine().trim(); Matcher matcher = ssNum.matcher(userInput); if (matcher.matches()) { System.out.println(userInput + " is a valid social security number."); } else { System.out.println(userInput + " is not a valid social security number."); } // 提示用户选择继续或退出 System.out.println("Enter 'continue' to verify another number, or 'exit' to quit:"); String command = in.nextLine().trim().toLowerCase(); if ("exit".equals(command)) { isRunning = false; System.out.println("Exiting program..."); } else if (!"continue".equals(command)) { System.out.println("Invalid command, continuing verification..."); } } in.close(); } }
关键逻辑说明:
- 用
boolean isRunning = true作为循环控制开关,while(isRunning)会持续执行直到变量变为false - 正则表达式修正为
(\\d\\d\\d)-(\\d\\d)-(\\d\\d\\d\\d),解决Java字符串的转义问题 - 每次验证完成后,读取用户输入的指令:
- 输入
exit时,将isRunning设为false,循环结束,程序退出 - 输入
continue则直接进入下一轮循环 - 输入其他内容时,提示无效指令并默认继续验证
- 输入
- 最后关闭Scanner资源,避免内存泄漏
内容的提问来源于stack exchange,提问作者Albin13299
相关产品推荐
相关产品推荐

