输入个人信息,将出生日期中的月日用*代替并输出。 老师出的题,做了4个多小时,实在不会做了,求教各位大神!
Date的构造函数中,年是以1900开始的,因此输入的年份要减去1900,月份是0-11代表12个月,0代表1月份,因此输入的月份要减1。日是完全对应。
int year = 1996;
int month = 10;
int day = 11;
Date date = new Date(year - 1900, month - 1, day);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年**月**日");
System.out.println(sdf.format(date));
按出生日期的格式,找到月和日的位置,然后替换成 *
关键在于出生日期的格式,按字符串进行操作应该不难,有现成的查找与定位的函数可用。
个人信息出生年月日的格式不是固定的吗?直接跳过年将后面的月日改为*。
SimpleDateFormat
这个太简单了吧,遍历字符串,找到日,月字符,直接用*替代,就这么简单啊
SimpleDateFormat 即可
你先从数据库获取出生日期假设为s,然后int index=s.indexOf("年");
if(index!=-1){
String s1=s.substring(0,index+1)+"*";//保留年
}
然后返回就可以了,如果保留月或者日,你就查出月日,然后index+1后面再添个*号就行了
你可以根据需要,根据这个思路修改
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = sdf.format(new Date(time*1000));
SimpleDateFormat或者是简单的字符串截取都是可行的啊,难道你的长度或者格式不固定吗??
这个问题要看你给的日期格式是什么才能给具体的转换代码,总体来说使用SimpleDateFormat即可完成工作。
比如你个人信息存储的生日为Date类型,那么使用下面的代码就可以输出你要的了。
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年**月**日");
System.out.println(sdf.format(date));
输出结果:
2015年**月**日
输出的样式跟SimpleDateFormat的参数有关,只要明白yyyy代表年,MM代表月,dd代表日即可。
既然已经知道了格式为yyyy年MM月dd日,那么方法就有很多种了。下面说一种:
String date = "1996年10月12日";
String mouthAndDay = date.substring(“年”)[1];
String newMouthAndDay = mouthAndDay.replace("\d*");
String date = date.replace("mouthAndDay",newMouthAndDay);