黑马程序员技术交流社区
标题:
分享一个笔试题
[打印本页]
作者:
即墨
时间:
2016-5-24 23:10
标题:
分享一个笔试题
package com.heima.dianzhao;
import java.util.Scanner;
/*
* 1. 模拟审核身份证的过程,按照以下要求实现相关代码(友情提示:不一定要用正则)(8分)
a.提示用户在控制台输入身份证号,用一个字符串对其进行保存(2分)
1.创建扫描器对象Scanner
2.用String line保存
b.判断该身份证号位数是否是18位或者16位(2分)
1.取字符长度,用变量保存,方便后边使用,并判断是否是18或16位
c.判断该身份证号除最后一位外,是否都是数字(2分)
1.利用身份证长度变量取出身份证前边的字符串
2.把取出身份证号字符串用Long.parseLong()转换,把语句try 起来,没报错说明全是数字,报错提示用户重新输出
d.将“41012419900801****”身份证号中生日(19900801)获取出来并且打印到控制台上(2分)
1.因为身份证好从第7位开始8个字符串是身份证中的生日,直接用substring取出打印即可
* */
public class Test01 {
public static void main(String[] args) {
// a.提示用户在控制台输入身份证号,用一个字符串对其进行保存(2分)
// 1.创建扫描器对象Scanner
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入您的身份证号码:");
// 2.用String line保存
String id = sc.nextLine();
// b.判断该身份证号位数是否是18位或者16位(2分)
int len = id.length();
if (len != 16 && len != 18) {
System.out.println("您输入的身份证号码长度不符,请重新输入");
continue;
}
try {
// 1.利用身份证长度变量取出身份证前边的字符串
// 1.把取出身份证号字符串用Integer.parseInt()转换,把语句try 起来,没报错说明全是数字,报错提示用户重新输出
System.out.println(id.substring(0, len - 1));
Long.parseLong(id.substring(0, len - 1));
} catch (Exception e) {
System.out.println("您输入的身份证有非法字符。");
// e.printStackTrace();
continue;
}
//打印生日字段
System.out.println(id.substring(6, 14));
break;
}
}
}
复制代码
作者:
我有上将潘凤
时间:
2016-5-25 22:57
mark。。。。
作者:
何亚辉
时间:
2016-5-25 23:28
package com.heima;
import java.util.Scanner;
public class ClassTest {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
/*模拟审核身份证的过程,按照以下要求实现相关代码(友情提示:不一定要用正则)(8分)
a.提示用户在控制台输入身份证号,用一个字符串对其进行保存(2分)
b.判断该身份证号位数是否是18位或者16位(2分)
c.判断该身份证号除最后一位外,是否都是数字(2分)
d.将“41012419900801****”身份证号中生日(19900801)获取出来并且打印到控制台上(2分)*/
A: while(true){
String s = sc.nextLine();
if(s.length()!=16&&s.length()!=18){
System.out.println("对不起, 您的输入有误,请重新输入");
continue;
}
for(int i =0;i<s.length();i++){
char c = s.charAt(s.length()-1);
if(i!=s.length()-1&&(s.charAt(i)>'9'||s.charAt(i)<'0')){
System.out.println("对不起, 您的输入有误,请重新输入");
continue A;
}else if(c!='x'&&(c>'9'||c<'0')){
System.out.println("对不起, 您的输入有误,请重新输入");
continue A;
}
}
for (int j = 6; j < 14; j++) {
System.out.print(s.charAt(j));
}
}
}
}
作者:
sasyun
时间:
2016-5-26 00:06
学习了
作者:
gsa798780633
时间:
2016-5-26 16:51
哪里的笔试题啊?
作者:
Hyperion
时间:
2016-5-26 21:14
记录一下!
作者:
罗勇
时间:
2016-5-26 21:31
学过了,过来复习一下!!!顺便支持一下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2