Java随机生成中文姓名工具

Posted 抓手

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java随机生成中文姓名工具相关的知识,希望对你有一定的参考价值。

import java.io.UnsupportedEncodingException;
import java.util.Random;

/**
 * @author 向振华
 * @date 2022/04/10 11:35
 */
public class RandomNameUtils 

    /**
     * 随机获取姓名
     *
     * @return
     */
    public static String fullName() 
        return surname() + name(2);
    

    /**
     * 随机获取姓
     *
     * @return
     */
    public static String surname() 
        return SURNAME[new Random().nextInt(SURNAME.length - 1)];
    

    /**
     * 获取N位常用字
     *
     * @param len
     * @return
     */
    public static String name(int len) 
        StringBuilder ret = new StringBuilder();
        for (int i = 0; i < len; i++) 
            String str = null;
            // 定义高低位
            int highPos, lowPos;
            Random random = new Random();
            //获取高位值
            highPos = (176 + Math.abs(random.nextInt(39)));
            //获取低位值
            lowPos = (161 + Math.abs(random.nextInt(93)));
            byte[] b = new byte[2];
            b[0] = (new Integer(highPos).byteValue());
            b[1] = (new Integer(lowPos).byteValue());
            try 
                //转成中文
                str = new String(b, "GBK");
             catch (UnsupportedEncodingException ex) 
                ex.printStackTrace();
            
            ret.append(str);
        
        return ret.toString();
    

    /**
     * 2021年姓排行100
     */
    private final static String[] SURNAME = 
            "李", "王", "张", "刘", "陈",
            "杨", "赵", "黄", "周", "吴",
            "徐", "孙", "胡", "朱", "高",
            "林", "何", "郭", "马", "罗",
            "梁", "宋", "郑", "谢", "韩",
            "唐", "冯", "于", "董", "萧",
            "程", "曹", "袁", "邓", "许",
            "傅", "沈", "曾", "彭", "吕",
            "苏", "卢", "蒋", "蔡", "贾",
            "丁", "魏", "薛", "叶", "阎",
            "余", "潘", "杜", "戴", "夏",
            "钟", "汪", "田", "任", "姜",
            "范", "方", "石", "姚", "谭",
            "廖", "邹", "熊", "金", "陆",
            "郝", "孔", "白", "崔", "康",
            "毛", "邱", "秦", "江", "史",
            "顾", "侯", "邵", "孟", "龙",
            "万", "段", "漕", "钱", "汤",
            "尹", "黎", "易", "常", "武",
            "乔", "贺", "赖", "龚", "文";

以上是关于Java随机生成中文姓名工具的主要内容,如果未能解决你的问题,请参考以下文章

java开发常用工具类集合总结

随机数生成工具类(中文姓名,性别,Email,手机号,住址)

Java随机生成姓名手机号

Java常用工具类(计算MD5,验证码随机生成,天数差值计算)

RandomCodeUtil

日常摘要- 生成随机的姓名或手机号篇