生成随机中文姓名java程序.pdf
大神请绕道
编写了一个生成随机中文姓名的java 程序。
姓氏根据《百家姓》随机获取,提供两种方式,一种使用字符串数组存储504 个姓氏,一种
使用xml 保存,sax 解析。Xml 文档附在文末。
名字随机生成。
指定生成200 个姓名,运行结果:
以下是程序全部代码:
随机姓名.zip
测试类Test.java
package RadomName;
import java.util.ArrayList;
大神请绕道
public class Test {
public static void main(String[] args) {
BuildAChineseName name = new BuildAChineseName();
// System.out.println(name.lineFirstLastNameString());//注释掉生成一个姓名
的方法
ArrayList nameList = name.lineFirstLastNameList(200);//生成200 个姓名
//打印所有姓名
for (int i = 0; i < nameList.size(); i++) {
System.out.print(nameList.get(i)+"\t");
//按照每行8 个姓名打印
if((i+1)%8==0){
System.out.println();
}
}
}
}
生成姓名BuildAChineseName.java
package RadomName;
import java.util.ArrayList;
public class BuildAChineseName {
private String firstName;
private String lastName;
private String nameString;
/**
* 随机生成一个姓名
* @return String 姓名=姓+名
*/
public String lineFirstLastNameString() {
firstName = new BuildFirstName().saxXmlFirstName();
lastName = new BuildLastName().createLastName();
nameString = firstName+lastName;
return nameString;
}
大神请绕道
/**
* 生成一串姓名
* @param rm
* @return 长度为rm 的一组ArrayList姓名
*/
public ArrayList lineFirstLastNameList(int rm){
ArrayList lineName = new ArrayList();
BuildFirstName buildFirstName = new BuildFirstName();
BuildLastName buildLastName = new BuildLastName();
for (int i = 0; i < rm; i++) {
lineName.add(buildFirstName.insideFirstName()+buildLastName.createLastName());
}
return lineName;
}
/**
* 使用sax 解析xml 生成姓氏,再调用名字生成方法,合成姓名。每
* 调用一次,读取xml 并获取姓氏一次
* @param rm
* @