Java 生成随机姓名

做数据库的时候写人名实在是太麻烦,用姓氏 + 数字的形式好像又感觉不太好(主要是闲的),所以我就制作了一个用 Java 写的工具类👉 RandomName.java

生成姓氏

首先就是要找到姓氏,其实这比较简单,直接上网搜 百家姓 ,随随便便就有一大把,然后将它们全部复制下来,进行一些处理,比如说去掉空格和做成数组啥的,只需要随便找一个 ide 或代码编辑器就能做到,这里拿 idea 举例,使用正则表达式将他们替换就好了

最后前后都加上花括号包住即可

注意:复姓也会被切成单个字,要自行修改

1
2
3
4
5
6
public String getFamilyName() {
String[] familyName = {...};
Random random = new Random();
int i = random.nextInt(familyName.length);
return familyName[i];
}

{...} 代表已经切割好的数组

生成名字

一样的,直接上网搜一些随机的汉字即可,我这里直接就是搜 汉字大全 了,又是同样的切割替换,然后写上代码,我这里做了一些处理,让生成的名字可以是一个字或两个字

1
2
3
4
5
6
7
8
9
10
11
public String getGivenName() {
String[] givenName = {...};
Random random = new Random();
int i = random.nextInt(givenName.length);
String newGivenName = givenName[i];
int size = (int) (System.currentTimeMillis() % 2 + 1);
if (size == 2) {
newGivenName = givenName[i] + givenName[(int) (System.currentTimeMillis() % givenName.length)];
}
return newGivenName;
}

生成姓名

做完以上两步就可以进行优化了,再加一个函数即可

1
2
3
public String getName() {
return getFamilyName() + getGivenName();
}

全部代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package exam.utils;

import java.util.Random;

public class RandomName {
private static String[] familyName = {...};
private static String[] givenName = {...};

public String getFamilyName() {
Random random = new Random();
int i = random.nextInt(familyName.length);
return familyName[i];
}

public String getGivenName() {
Random random = new Random();
int i = random.nextInt(givenName.length);
String newGivenName = givenName[i];
int size = (int) (System.currentTimeMillis() % 2 + 1);
if (size == 2) {
newGivenName = givenName[i] + givenName[(int) (System.currentTimeMillis() % givenName.length)];
}
return newGivenName;
}

public String getName() {
return getFamilyName() + getGivenName();
}
}

看看效果

需要源代码的话可以到 https://github.com/jesspig/MyUtils/tree/main/Java 中获取