本帖最后由 翁发达 于 2012-9-12 12:08 编辑
要求输入一个身份证号,然后打印出生年月日,打印出来的格式是:xxxx年xx月xx日.并要得到年月日累加的和.
我的思路是:
先判断这个身份证长度是否正确,用String类的length方法
再将这个身份证的年月日截取出来,用substring();
然后再折分,用三个变量接收,然后加上"年""月""日"打印
接下来累加年月日就把我难住了,我得到的是不确定的字符串,
一加的结果乱其八糟,我都看不懂,请问正确的要怎么实现?
还有个问题,外一有不小心输入了字母怎么办?
那我们要验证这个身份证是否有非法字符?这个代码该怎么实现?
import java.util.Scanner;
class Test1
{
public static void main(String[] args)
{
Scanner can=new Scanner(System.in);
System.out.println("请输入身份证号");
String id=can.nextLine();
if(StringTools.checkLength(id)){
String birthday=StringTools.getBirthday(id);
StringTools.print(birthday);
}else{
System.out.println("身份证长度不正确");
}
}
}
//将得到的birthday 按照指定格式输出
class StringTools
{
public static void print(String birthday){
String year="";
String month="";
String day="";
year=birthday.substring(0,4);
month=birthday.substring(4,6);
day=birthday.substring(6);
System.out.println(year+"年"+month+"月"+day+"日");
}
//判断身份证号长度是否正确
public static boolean checkLength(String id){
return id.length()==18;
}
//得到身份证中的年月日
public static String getBirthday(String id){
return id.substring(6,14);
}
}
|
|