Java生成隨機(jī)姓名、性別和年齡的實(shí)現(xiàn)示例
一、定義實(shí)體類Person,封裝生成的數(shù)據(jù)
package net.dc.test;
public class Person {
private String name;
private String sex;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
'}';
}
}
二、定義隨機(jī)信息類RandInfo,生成隨機(jī)數(shù)據(jù)
package net.dc.test;
import java.util.Random;
public class RandInfo {
String familyName = "趙錢孫李周吳鄭王馮陳褚衛(wèi)蔣沈韓楊朱秦尤許何呂施張孔曹嚴(yán)華金魏陶姜戚謝鄒喻水云蘇潘葛奚范彭郎魯韋昌馬苗鳳花方俞任袁柳鮑史唐費(fèi)岑薛雷賀倪湯滕殷羅畢郝鄔安常樂(lè)于時(shí)傅卞齊康伍余元卜顧孟平"
+ "黃和穆蕭尹姚邵湛汪祁毛禹狄米貝明臧計(jì)成戴宋茅龐熊紀(jì)舒屈項(xiàng)祝董粱杜阮席季麻強(qiáng)賈路婁危江童顏郭梅盛林刁鐘徐邱駱高夏蔡田胡凌霍萬(wàn)柯盧莫房繆干解應(yīng)宗丁宣鄧郁單杭洪包諸左石崔吉"
+ "龔程邢滑裴陸榮翁荀羊甄家封芮儲(chǔ)靳邴松井富烏焦巴弓牧隗山谷車侯伊寧仇祖武符劉景詹束龍葉幸司韶黎喬蒼雙聞?shì)穭阱碳皆坠鹋弁ㄟ呇嗉缴修r(nóng)溫莊晏瞿茹習(xí)魚(yú)容向古戈終居衡步都耿滿弘國(guó)文東毆沃曾關(guān)紅游蓋益桓公晉楚閆";
String firstName2 = "歐陽(yáng)太史端木上官司馬東方獨(dú)孤南宮萬(wàn)俟聞人夏侯諸葛尉遲公羊赫連澹臺(tái)皇甫宗政濮陽(yáng)公冶太叔申屠公孫慕容仲孫鐘離長(zhǎng)孫宇文司徒鮮于司空閭丘子車亓官司寇巫馬公西顓孫壤駟公良漆雕樂(lè)正宰父谷梁拓跋夾谷軒轅令狐段干百里呼延?xùn)|郭南門羊舌微生公戶公玉公儀梁丘公仲公上公門公山公堅(jiān)左丘公伯西門公祖第五公乘貫丘公皙南榮東里東宮仲長(zhǎng)子書(shū)子桑即墨達(dá)奚褚?guī)焻倾?;
String girlName = "秀娟英華慧巧美娜靜淑惠珠翠雅芝玉萍紅娥玲芬芳燕彩春菊蘭鳳潔梅琳素云蓮真環(huán)雪榮愛(ài)妹霞香月鶯媛艷瑞凡佳嘉瓊勤珍貞莉桂娣葉璧璐婭琦晶妍茜秋珊莎錦黛青倩婷姣婉嫻瑾穎露瑤怡嬋雁蓓紈儀荷丹蓉眉君琴蕊薇菁?jí)魨乖锋架拌ョ嵢趫@藝詠卿聰瀾純毓悅昭冰爽琬茗羽希寧欣飄育瀅馥筠柔竹靄凝曉歡霄楓蕓菲寒伊亞宜可姬舒影荔枝思麗";
String boyName = "偉剛勇毅俊峰強(qiáng)軍平保東文輝力明永健世廣志義興良海山仁波寧貴福生龍?jiān)珖?guó)勝學(xué)祥才發(fā)武新利清飛彬富順信子杰濤昌成康星光天達(dá)安巖中茂進(jìn)林有堅(jiān)和彪博誠(chéng)先敬震振壯會(huì)思群豪心邦承樂(lè)紹功松善厚慶磊民友裕河哲江超浩亮政謙亨奇固之輪翰朗伯宏言若鳴朋斌梁棟維啟克倫翔旭鵬澤晨辰士以建家致樹(shù)炎德行時(shí)泰盛雄琛鈞冠策騰楠榕風(fēng)航弘";
public String randFamilyName() {
String str = "";
int strLen;
int randNum = new Random().nextInt(2) + 1;
int index;
if (randNum == 1) {
strLen = familyName.length();
index = new Random().nextInt(strLen);
str = String.valueOf(familyName.charAt(index));
} else {
strLen = firstName2.length();
index = new Random().nextInt(strLen);
if (index % 2 == 0) {
str = firstName2.substring(index, index + 2);
} else {
str = firstName2.substring(index - 1, index + 1);
}
}
return str;
}
public String randSex() {
int randNum = new Random().nextInt(2) + 1;
return randNum == 1 ? "男" : "女";
}
public String randName(String sex) {
String name = "";
int randNum = new Random().nextInt(2) + 1;
int index;
if (sex.equals("男")) {
int strLen = boyName.length();
if (randNum % 2 == 0) {
index = new Random().nextInt(strLen - 1);
name = boyName.substring(index, index + randNum).concat("-男");
} else {
index = new Random().nextInt(strLen);
name = boyName.substring(index, index + randNum).concat("-男");
}
} else {
int strLen = girlName.length();
if (randNum % 2 == 0) {
index = new Random().nextInt(strLen - 1);
name = girlName.substring(index, index + randNum).concat("-女");
} else {
index = new Random().nextInt(strLen);
name = girlName.substring(index, index + randNum).concat("-女");
}
}
return name;
}
public int randAge() {
return new Random().nextInt(4) + 18;
}
}
三、定義測(cè)試類TestRand,進(jìn)行測(cè)試
package net.dc.test;
public class TestRand {
public static void main(String[] args) {
Person person = new Person();
RandInfo randInfo = new RandInfo();
for (int i = 0; i < 10; i++) {
// 姓氏隨機(jī)生成
String familyName = randInfo.randFamilyName();
// 名字依托于性別產(chǎn)生
String randName = randInfo.randName(randInfo.randSex());
String[] fixed = randName.split("-");
String name = fixed[0];
String sex = fixed[1];
int age = randInfo.randAge();
person.setName(familyName.concat(name));
person.setSex(sex);
person.setAge(age);
System.out.println(person);
}
}
}
測(cè)試結(jié)果:

到此這篇關(guān)于Java生成隨機(jī)姓名、性別和年齡的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Java生成隨機(jī)姓名、性別和年齡內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA查看所有的斷點(diǎn)(Breakpoints)并關(guān)閉的方式
我們?cè)谑褂肐DEA開(kāi)發(fā)Java應(yīng)用時(shí),基本上都需要進(jìn)行打斷點(diǎn)的操作,這方便我們排查BUG,也方便我們查看設(shè)計(jì)的是否正確,不過(guò)有時(shí)候,我們不希望進(jìn)入斷點(diǎn),所以我們需要快速關(guān)閉所有斷點(diǎn),故本文給大家介紹了IDEA查看所有的斷點(diǎn)(Breakpoints)并關(guān)閉的方式2024-10-10
SpringBoot實(shí)現(xiàn)接口等冪次校驗(yàn)的示例代碼
本文主要介紹了SpringBoot實(shí)現(xiàn)接口等冪次校驗(yàn)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Springboot如何實(shí)現(xiàn)自定義異常數(shù)據(jù)
這篇文章主要介紹了Springboot如何實(shí)現(xiàn)自定義異常數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
springboot如何將http轉(zhuǎn)https
這篇文章主要介紹了springboot如何將http轉(zhuǎn)https,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
maven-assembly-plugin報(bào)紅無(wú)法加載報(bào)錯(cuò):Plugin?‘maven-assembly-plugin
maven-assembly-plugin是一個(gè)常用的打包插件,但是在使用過(guò)程中經(jīng)常會(huì)遇到各種報(bào)錯(cuò),本文就來(lái)介紹一下maven-assembly-plugin報(bào)紅無(wú)法加載報(bào)錯(cuò),具有一定的參考價(jià)值2023-08-08
datax-web在windows環(huán)境idea中模塊化打包部署操作步驟
這篇文章主要介紹了datax-web在windows環(huán)境idea中模塊化打包部署操作步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05
舉例講解設(shè)計(jì)模式中的訪問(wèn)者模式在Java編程中的運(yùn)用
這篇文章主要介紹了舉例講解設(shè)計(jì)模式中的訪問(wèn)者模式在Java編程中的運(yùn)用,訪問(wèn)者模式是一種將算法與對(duì)象結(jié)構(gòu)分離的軟件設(shè)計(jì)模式,需要的朋友可以參考下2016-05-05

