您的位置:首页 > 移动开发 > 微信开发

身份证号/姓名/手机号码/工资卡号生成(忘记是从哪位大哥那偷来的,仅用做测试)

2017-05-10 11:41 288 查看
com.test.test.test;

// 身份证生成

public class IDCard {

// wi =2(n-1)(mod 11)

final int[] wi = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 }; //

// verify digit
final int[] vi = { 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 }; //

private int[] ai = new int[18];

// get verify
public String getVerify(String eightcardid) { // eightcardid
int remaining = 0;

if (eightcardid.length() == 17) {
int sum = 0;
for (int i = 0; i < 17; i++) {
String k = eightcardid.substring(i, i + 1);
ai[i] = Integer.parseInt(k);
}

for (int i = 0; i < 17; i++) {
sum = sum + wi[i] * ai[i];
}
remaining = sum % 11;
return remaining == 2 ? "X":String.valueOf(vi[remaining]);
} else {
return "error!";
}
}

// 用随机数 写出前17位
public String getSheng() {
// 第一二位 前两位 01- 64
// int number = (int)(Math.random()*(tonum-fromnum))+fromnum;
int number;
String str = null;
number = (int) (Math.random() * (64 - 1) + 1);
if (number < 10) {
// 转换成字符串

str = Integer.toString(number);
str = "0" + number;
// System.out.println(str);
return str;
} else {
return Integer.toString(number);
}
}

public String getShi() {
// 第三四位 两位 01-02
int number;
number = (int) (Math.random() * 1 + 1);
String str = null;
if (number < 10) {
// 转换成字符串
str = Integer.toString(number);
str = "0" + number;
return str;
} else {
return Integer.toString(number);
}
}

public String getXian() {
// 第五六位 两位 01-05
int number;
number = (int) (Math.random() * 4 + 1);
String str = null;
if (number < 10) {
// 转换成字符串
str = Integer.toString(number);
str = "0" + number;
// System.out.println(str);
return str;
} else {
// System.out.println(Integer.toString(number));
return Integer.toString(number);
}
}

public String getYear() {
// 第 7--10位 年份:1970-1990
int number;
number = (int) (Math.random() * (1990 - 1970) + 1970);
String str = null;
if (number < 10) {
// 转换成字符串
str = Integer.toString(number);
str = "0" + number;
return str;
} else {
return Integer.toString(number);
}
}

public String getMonth() {
// 第11 12 位 月份:01-12
int number;
number = (int) (Math.random() * (12 - 1) + 1);
String str = null;
if (number < 10) {
// 转换成字符串
str = Integer.toString(number);
str = "0" + number;
return str;
} else {
return Integer.toString(number);
}
}

public String getDay() {
// 第13 14 位 日期:01-28
int number;
number = (int) (Math.random() * (28 - 1) + 1);
String str = null;
if (number < 10) {
// 转换成字符串
str = Integer.toString(number);
str = "0" + number;
return str;
} else {
return Integer.toString(number);
}
}

public String getSequence() {
// 第15 16 位 两位:01-99
int number;
number = (int) (Math.random() * (99 - 1) + 1);
String str = null;
if (number < 10) {
// 转换成字符串
str = Integer.toString(number);
str = "0" + number;
return str;
} else {
return Integer.toString(number);
}
}

public String getSex() {
// 第17 位 一位性别:0-9
int number;
number = (int) (Math.random() * (9 - 0) + 0);
return Integer.toString(number);
}

public String get17ID() {
String str = null;
str = this.getSheng() + this.getShi() + this.getXian()
+ this.getYear() + this.getMonth() + this.getDay()
+ this.getSequence() + this.getSex();
return str;
}

public String getIDCard() {
String str = null;
str = this.get17ID();
str = str + this.getVerify(str);
return str;
}

public static void main(String[] args) {
IDCard card = new IDCard();
System.out.println("身份证号为:" + card.getIDCard());
}


}

// 姓名生成,请忽略性别(自己发现)

private static String firstName = “赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮卞齐康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林刁钟徐邱骆高夏蔡田樊胡凌霍虞万支柯咎管卢莫经房裘缪干解应宗宣丁贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁荀羊於惠甄魏加封芮羿储靳汲邴糜松井段富巫乌焦巴弓牧隗山谷车侯宓蓬全郗班仰秋仲伊宫宁仇栾暴甘钭厉戎祖武符刘姜詹束龙叶幸司韶郜黎蓟薄印宿白怀蒲台从鄂索咸籍赖卓蔺屠蒙池乔阴郁胥能苍双闻莘党翟谭贡劳逄姬申扶堵冉宰郦雍却璩桑桂濮牛寿通边扈燕冀郏浦尚农温别庄晏柴瞿阎充慕连茹习宦艾鱼容向古易慎戈廖庚终暨居衡步都耿满弘匡国文寇广禄阙东殴殳沃利蔚越夔隆师巩厍聂晁勾敖融冷訾辛阚那简饶空曾毋沙乜养鞠须丰巢关蒯相查后江红游竺权逯盖益桓公万俟司马上官欧阳夏侯诸葛闻人东方赫连皇甫尉迟公羊澹台公冶宗政濮阳淳于仲孙太叔申屠公孙乐正轩辕令狐钟离闾丘长孙慕容鲜于宇文司徒司空亓官司寇仉督子车颛孙端木巫马公西漆雕乐正壤驷公良拓拔夹谷宰父谷粱晋楚阎法汝鄢涂钦段干百里东郭南门呼延归海羊舌微生岳帅缑亢况后有琴梁丘左丘东门西门商牟佘佴伯赏南宫墨哈谯笪年爱阳佟第五言福百家姓续”;

private static String girl = “秀娟英华慧巧美娜静淑惠珠翠雅芝玉萍红娥玲芬芳燕彩春菊兰凤洁梅琳素云莲真环雪荣爱妹霞香月莺媛艳瑞凡佳嘉琼勤珍贞莉桂娣叶璧璐娅琦晶妍茜秋珊莎锦黛青倩婷姣婉娴瑾颖露瑶怡婵雁蓓纨仪荷丹蓉眉君琴蕊薇菁梦岚苑婕馨瑗琰韵融园艺咏卿聪澜纯毓悦昭冰爽琬茗羽希宁欣飘育滢馥筠柔竹霭凝晓欢霄枫芸菲寒伊亚宜可姬舒影荔枝思丽 “;

private static String boy = “伟刚勇毅俊峰强军平保东文辉力明永健世广志义兴良海山仁波宁贵福生龙元全国胜学祥才发武新利清飞彬富顺信子杰涛昌成康星光天达安岩中茂进林有坚和彪博诚先敬震振壮会思群豪心邦承乐绍功松善厚庆磊民友裕河哲江超浩亮政谦亨奇固之轮翰朗伯宏言若鸣朋斌梁栋维启克伦翔旭鹏泽晨辰士以建家致树炎德行时泰盛雄琛钧冠策腾楠榕风航弘”;

public static int getNum(int start, int end) {

return (int) (Math.random() * (end - start + 1) + start);

}

// 姓名

public static String productName() {

String name_sex = “”;

int index = getNum(0, firstName.length() - 1);

String first = firstN
4000
ame.substring(index, index + 1);

int sex = getNum(0, 1);

String str = boy;

int length = boy.length();

if (sex == 0) {

str = girl;

length = girl.length();

name_sex = “女”;

} else {

name_sex = “男”;

}

index = getNum(0, length - 1);

String second = str.substring(index, index + 1);

int hasThird = getNum(0, 1);

String third = “”;

if (hasThird == 1) {

index = getNum(0, length - 1);

third = str.substring(index, index + 1);

}

return first + second + third;

}

// 手机号码

// 手机号码

private static String[] telFirst = “134,135,136,137,138,139,150,151,152,157,158,159,130,131,132,155,156,133,153”

.split(“,”);

private static String getTel() {
int index = getNum(0, telFirst.length - 1);
String first = telFirst[index];
String second = String.valueOf(getNum(1, 888) + 10000).substring(1);
String thrid = String.valueOf(getNum(1, 9100) + 10000).substring(1);
return first + second + thrid;
}


// 银行卡号,长度随意

public static String RandomNumber() {

String returnStr = “”;

int kk = (int) (10 * (Math.random())) + 12;

int a[] = new int[kk];

for (int i = 0; i < a.length; i++) {

a[i] = (int) (10 * (Math.random()));

returnStr+= a[i];

}

return returnStr;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  测试 java 小程序