900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 编程练习题4.21 ( 检查 SSN ) 编写一个程序 提示用户输入一个社保号码 它

编程练习题4.21 ( 检查 SSN ) 编写一个程序 提示用户输入一个社保号码 它

时间:2018-12-19 19:53:44

相关推荐

编程练习题4.21 ( 检查 SSN ) 编写一个程序  提示用户输入一个社保号码  它

在校生初学Java,在看IntroductionToJavaProgramming(Java语言程序设计 基础篇 原书第10版)这本书时做到了书上这题,目前水平有限,做了出来,在这里做个Java练习笔记吧。感觉代码有些啰嗦,有不足之处还望大家在评论里交流指点。

//先立个标志,方便处理输出boolean flag=false;while(true){Scanner input=new Scanner(System.in);//首次输入提示及出// 错后再次输入提示if(!flag) {System.out.println("Please enter a ssn:");}else{System.out.println("Please enter exactly again: ");}String ssn=input.nextLine();//首先判断输入的号码字符串的长度是否正确if(ssn.length()!=11){System.out.println("Invalid input length! ");//长度不符,修改flag标志的值flag=true;//就此止步,回头进行下一次while循环continue;}//再次立个标志,用于判断输入的号码格式是否完全正确int t=0;//进一步判断每个位置的字符格式是否正确for(int i=0;i<ssn.length();i++){if(i==3||i==6){if(ssn.charAt(i)!='-') {//格式错误,修改flag标志的值flag = true;//退出for循环break;}}else if(!Character.isDigit(ssn.charAt(i))){//格式错误,修改flag标志的值flag=true;//退出for循环break;}//每判断一位字符格式正确就+1t++;}//在for循环外判断标志t的是否等于输入的号码长度if(t==ssn.length()){System.out.print("Enter format correctly.");//正常退出程序System.exit(0);}//由flag值判断输出if(flag){System.out.println("Wrong input format!");//就此止步,回头进行下一次while循环continue;}}

运行结果示例:

编程练习题4.21 ( 检查 SSN ) 编写一个程序 提示用户输入一个社保号码 它的格式是 DDD-DD-DDDD 其中 D 是一个数字。 你的程序应该判断输入是否合法。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。