做数据库的时候写人名实在是太麻烦,用姓氏 + 数字的形式好像又感觉不太好(主要是闲的),所以我就制作了一个用 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 中获取