在校生初学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 是一个数字。 你的程序应该判断输入是否合法。相关推荐

  1. Java黑皮书课后题第10章:***10.8(金融:Tax类)编程练习题8.12使用数组编写一个计算税款的程序。设计一个名为Tax类,该类包含下面的实例数据域

    ***10.8(金融:Tax类)编程练习题8.12使用数组编写一个计算税款的程序.设计一个名为Tax类,该类包含下面的实例数据域 题目 程序解释 代码 Test8.java Test8_Tax.jav ...

  2. Java黑皮书课后题第7章:*7.11(统计:计算标准差)编程练习题5.45计算数字的标准差。本题…计算标准差,使用一个数组存储x的每个数。编写测试程序,提示用户输入10个数字,显示平均值和标准差

    7.11(统计:计算标准差)编程练习题5.45计算数字的标准差.本题-计算标准差,使用一个数组存储x的每个数.编写测试程序,提示用户输入10个数字,显示平均值和标准差 题目 题目描述与运行示例 破题 ...

  3. Java黑皮书课后题第6章:**6.34(打印日历)编程练习题3.21使用Zeller一致性原理来计算某天是星期几,使用Zeller的算法简化程序清单6-12以获得每月开始的第一天是星期几

    6.34(打印日历)编程练习题3.21使用Zeller一致性原理来计算某天是星期几,使用Zeller的算法简化程序清单6-12以获得每月开始的第一天是星期几 题目 题目描述 编程练习题3.21的Zel ...

  4. Java黑皮书课后题第8章:***8.35(最大块)给定一个元素为0或者1的方阵,编写程序,找到一个元素都为1的最大的子方阵。程序提示用户输入矩阵的行数。然后显示最大的子方阵的第一个元素、行数

    ***8.35(最大块)给定一个元素为0或者1的方阵,编写程序,找到一个元素都为1的最大的子方阵.程序提示用户输入矩阵的行数.然后显示最大的子方阵的第一个元素.行数 题目 题目描述与运行示例 破题 代 ...

  5. Java黑皮书课后题第7章:*7.30(模式识别:四个连续相等的数)编写下面的方法,测试某数组是否有四个连续相同值的数。编写测试程序,提示用户输入一个整数列表,调用方法看是否有4个连续且相等的数

    *7.30(模式识别:四个连续相等的数)编写下面的方法,测试某数组是否有四个连续相同值的数.编写测试程序,提示用户输入一个整数列表,调用方法看是否有4个连续且相等的数 题目 题目描述与运行示例 破题 ...

  6. Java黑皮书课后题第7章:7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则最小

    7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则返回最小的下标) 题目 题目描述 ...

  7. Java黑皮书课后题第7章:7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值

    7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值 题目 题目描述与运行示例 破题 代码 ...

  8. Java黑皮书课后题第7章:*7.1(指定等级)编写一个程序读入学生成绩,得到最高分best,然后根据下面的规则给出等级值。程序提示用户输入学生总数,然后提示用户输入所有的分数,最后显示等级给出结论

    7.1(指定等级)编写一个程序读入学生成绩,得到最高分best,然后根据下面的规则给出等级值 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 *7.1(指定等级)编写一个程序读入学生成 ...

  9. Java黑皮书课后题第3章:*3.33(金融:比较成本)假设你要通过两种不同的包裹运输大米。你可能会编写一个程序来比较成本,该程序提示用户输入每个包裹的重量和价格,然后显示具有更优惠的包裹

    *3.33(金融:比较成本)假设你要通过两种不同的包裹运输大米.你可能会编写一个程序来比较成本,该程序提示用户输入每个包裹的重量和价格,然后显示具有更优惠的包裹 题目 题目概述 运行示例 破题 代码 ...

最新文章

  1. (一)TestNG测试框架之HelloWorld入门
  2. 010_Select选择器
  3. 申请成功,庆祝一下。
  4. HBase Replication源码解析之HLog读取
  5. Find Minimum in Rotated Sorted Array
  6. 调用外部 DLL 中的函数(显示调用)
  7. c# LINQ 使用
  8. 批量数据替换助手V2.0版发布,欢迎使用
  9. SQL JDBC下载
  10. 嘉禾病历系统服务器,嘉和电子病历系统使用手册-医生工作站
  11. 如何迅速提升网站流量
  12. 解决VBE6EXT.OLB不能被加载问题
  13. rs232转485通信在串口助手只能发送数据而接受不到数据,求大神解答
  14. 手撸架构,MyBatis 面试42问
  15. 帝国CMS 7.2-插件包整合
  16. InternalEror :Dst tensor is not initialized
  17. Go unkown reversion问题解决
  18. 哈希算法--暴雪的mpq技术
  19. 【电气专业知识问答】问:3/2接线方式时送电的操作顺序是怎样规定的?为什么?
  20. Vue组件库实现按需加载功能

热门文章

  1. AI人脸检测和人脸识别是一个概念吗?有什么区别?
  2. React的React.FC与React.Component
  3. 工作5年的阿里Java程序员分享从业心得总结,写给还在迷茫的朋友
  4. 最全的 lombok 注解详情(随着版本不定时更新)
  5. XX健康:预约管理-预约设置日历插件文件简单下载Excel文件解析Excel表数据批量导入
  6. 智慧楼宇篇 3 —— 室内定位技术(三) - UWB室内定位技术
  7. [转载]湘教版高中地理必修三:2011年五校第一学期高二
  8. 408计算机组成原理历年真题
  9. 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 A-Wasserstein Distance
  10. Ceph RBD API librdb 读流程源码分析