package com.zhifu;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ReUtil;
import cn.hutool.http.HttpUtil;
import java.io.File;
import java.nio.charset.Charset;
import java.util.*;
/**
* @project maven-java
* @Author zhifu
* @description
* @date 2024/7/30 15:20
*/
public class GenerateRandomNames2 {
public static void main(String[] args) {
String lastNameUrl = "https://ratenn.com/hundreds-of-surnames.html";//百家姓url(--外界输入--)
String boyNameUrl = "https://ratenn.com/boy-name.html";//男名url(--外界输入--)
String girlNameUrl = "https://ratenn.com/girl-name.html";//女名url(--外界输入--)
String lastNameStr = HttpUtil.get(lastNameUrl);
String boyNameStr = HttpUtil.get(boyNameUrl);
String girlNameStr = HttpUtil.get(girlNameUrl);
int boyNum = 30;//男名个数(--外界输入--)
int girlNum = 50;//女名个数(--外界输入--)
String path = "a.txt";//保存路径(--外界输入--)
List<String> names = getFullNameList(lastNameStr,boyNameStr,girlNameStr,boyNum,girlNum);
//打乱
Collections.shuffle(names);
FileUtil.writeLines(names,new File(path), Charset.defaultCharset());
}
private static List<String> getFullNameList(String lastNameStr, String boyNameStr, String girlNameStr, int boyNum, int girlNum) {
List<String> lastNames = ReUtil.findAll("<td>([0-9]|[0-9][0-9]|[0-9][0-9][0-9])(.)</td>", lastNameStr, 2);
List<String> boyNames = ReUtil.findAll( "<td>(..)</td>", boyNameStr, 1);
List<String> girlNames = ReUtil.findAll( "<td>(..)</td>", girlNameStr, 1);
Random random = new Random();
HashSet<String> boys = new HashSet<>();
HashSet<String> girls = new HashSet<>();
while (boys.size() != boyNum) {
Collections.shuffle(lastNames);
Collections.shuffle(boyNames);
String name = lastNames.get(0) + boyNames.get(0) + "-男-" + random.nextInt(100);
boys.add(name);
}
while (girls.size() != girlNum) {
Collections.shuffle(lastNames);
Collections.shuffle(girlNames);
String name = lastNames.get(0) + girlNames.get(0) + "-女-" + random.nextInt(100);
girls.add(name);
}
ArrayList<String> fullNames = new ArrayList<>();
fullNames.addAll(boys);
fullNames.addAll(girls);
return fullNames;
}
}
Java+hutools批量生成随机姓名
最新推荐文章于 2024-09-05 15:53:59 发布