欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Java 生成随机中英文名称(返回顶部)

最编程 2024-07-07 08:14:30
...

基本介绍

一个生成随机中英文姓名的 java 小项目,已打包jar(未混淆)。

这个 jar 的姓名资源是直接在类文件中使用数组存储的。下一篇将使用 json 的方式存取姓名资源。

点击下载

效果预览:

这里写图片描述

源码地址:https://gitee.com/mingyueyixi/RandomName/tree/master/SimpleName

其他说明


生成中文部分:

首先,定义了一堆姓氏:

class SourceZh {
    static String[] firstNameInside = {
            "赵" , "钱" , "孙" , "李" , "周" , "吴" , "郑" , "王",
            "冯" , "陈" , "楮" , "卫" , "蒋" , "沈" , "韩" , "杨",
            "朱" , "秦" , "尤" , "许" , "何" , "吕" , "施" , "张",
            "孔" , "曹" , "严" , "华" , "金" , "魏" , "陶" , "姜",
            "戚" , "谢" , "邹" , "喻" , "柏" , "水" , "窦" , "章",
            "云" , "苏" , "潘" , "葛" , "奚" , "范" , "彭" , "郎",
            "鲁" , "韦" , "昌" , "马" , "苗" , "凤" , "花" , "方",
            "俞" , "任" , "袁" , "柳" , "酆" , "鲍" , "史" , "唐",
            "费" , "廉" , "岑" , "薛" , "雷" , "贺" , "倪" , "汤",
            "滕" , "殷" , "罗" , "毕" , "郝" , "邬" , "安" , "常",
            "乐" , "于" , "时" , "傅" , "皮" , "卞" , "齐" , "康",
            "伍" , "余" , "元" , "卜" , "顾" , "孟" , "平" , "黄",
            "和" , "穆" , "萧" , "尹" , "姚" , "邵" , "湛" , "汪",
            "祁" , "毛" , "禹" , "狄" , "米" , "贝" , "明" , "臧",
            "计" , "伏" , "成" , "戴" , "谈" , "宋" , "茅" , "庞",
            "熊" , "纪" , "舒" , "屈" , "项" , "祝" , "董" , "梁",
            "杜" , "阮" , "蓝" , "闽" , "席" , "季" , "麻" , "强",
            "贾" , "路" , "娄" , "危" , "江" , "童" , "颜" , "郭",
            "梅" , "盛" , "林" , "刁" , "锺" , "徐" , "丘" , "骆",
            "高" , "夏" , "蔡" , "田" , "樊" , "胡" , "凌" , "霍",
            "虞" , "万" , "支" , "柯" , "昝" , "管" , "卢" , "莫",
            "经" , "房" , "裘" , "缪" , "干" , "解" , "应" , "宗",
            "丁" , "宣" , "贲" , "邓" , "郁" , "单" , "杭" , "洪",
            "包" , "诸" , "左" , "石" , "崔" , "吉" , "钮" , "龚",
            "程" , "嵇" , "邢" , "滑" , "裴" , "陆" , "荣" , "翁",
            "荀" , "羊" , "於" , "惠" , "甄" , "麹" , "家" , "封",
            "芮" , "羿" , "储" , "靳" , "汲" , "邴" , "糜" , "松",
            "井" , "段" , "富" , "巫" , "乌" , "焦" , "巴" , "弓",
            "牧" , "隗" , "山" , "谷" , "车" , "侯" , "宓" , "蓬",
            "全" , "郗" , "班" , "仰" , "秋" , "仲" , "伊" , "宫",
            "宁" , "仇" , "栾" , "暴" , "甘" , "斜" , "厉" , "戎",
            "祖" , "武" , "符" , "刘" , "景" , "詹" , "束" , "龙",
            "叶" , "幸" , "司" , "韶" , "郜" , "黎" , "蓟" , "薄",
            "印" , "宿" , "白" , "怀" , "蒲" , "邰" , "从" , "鄂",
            "索" , "咸" , "籍" , "赖" , "卓" , "蔺" , "屠" , "蒙",
            "池" , "乔" , "阴" , "郁" , "胥" , "能" , "苍" , "双",
            "闻" , "莘" , "党" , "翟" , "谭" , "贡" , "劳" , "逄",
            "姬" , "申" , "扶" , "堵" , "冉" , "宰" , "郦" , "雍",
            "郤" , "璩" , "桑" , "桂" , "濮" , "牛" , "寿" , "通",
            "边" , "扈" , "燕" , "冀" , "郏" , "浦" , "尚" , "农",
            "温" , "别" , "庄" , "晏" , "柴" , "瞿" , "阎" , "充",
            "慕" , "连" , "茹" , "习" , "宦" , "艾" , "鱼" , "容",
            "向" , "古" , "易" , "慎" , "戈" , "廖" , "庾" , "终",
            "暨" , "居" , "衡" , "步" , "都" , "耿" , "满" , "弘",
            "匡" , "国" , "文" , "寇" , "广" , "禄" , "阙" , "东",
            "欧" , "殳" , "沃" , "利" , "蔚" , "越" , "夔" , "隆",
            "师" , "巩" , "厍" , "聂" , "晁" , "勾" , "敖" , "融",
            "冷" , "訾" , "辛" , "阚" , "那" , "简" , "饶" , "空",
            "曾" , "毋" , "沙" , "乜" , "养" , "鞠" , "须" , "丰",
            "巢" , "关" , "蒯" , "相" , "查" , "后" , "荆" , "红",
            "游" , "竺" , "权" , "逑" , "盖" , "益" , "桓" , "公",
            "万俟" , "司马" , "上官" , "欧阳",
            "夏侯" , "诸葛" , "闻人" , "东方",
            "赫连" , "皇甫" , "尉迟" , "公羊",
            "澹台" , "公冶" , "宗政" , "濮阳",
            "淳于" , "单于" , "太叔" , "申屠",
            "公孙" , "仲孙" , "轩辕" , "令狐",
            "锺离" , "宇文" , "长孙" , "慕容",
            "鲜于" , "闾丘" , "司徒" , "司空",
            "丌官" , "司寇" , "仉" , "督" , "子车",
            "颛孙" , "端木" , "巫马" , "公西",
            "漆雕" , "乐正" , "壤驷" , "公良",
            "拓拔" , "夹谷" , "宰父" , "谷梁",
            "晋" , "楚" , "阎" , "法" , "汝" , "鄢" , "涂" , "钦",
            "段干" , "百里" , "东郭" , "南门",
            "呼延" , "归" , "海" , "羊舌" , "微生",
            "岳" , "帅" , "缑" , "亢" , "况" , "后" , "有" , "琴",
            "梁丘" , "左丘" , "东门" , "西门",
            "商" , "牟" , "佘" , "佴" , "伯" , "赏" , "南宫",
            "墨" , "哈" , "谯" , "笪" , "年" , "爱" , "阳" , "佟",
            "第五" , "言" , "福"
            };

}

然后,随机生成中文名字,并且去掉一些繁体中文,拼接成中文姓名:



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

import com.lu.sn.RandomNameI;

public class SimpleZhName implements RandomNameI{

    /**
     * 构造方法
     */
    public SimpleZhName() {
        random = new Random();
    }
    private Random random;

    /**
     * 使用数组的方式存储姓氏
     * @return 数组中随机下标的字符串
     */
    public String insideFirstName() {
        int i = random.nextInt(SourceZh.firstNameInside.length);//[0,n)
        return SourceZh.firstNameInside[i];
    }
    public String[] getFirstNameInside() {
        return SourceZh.firstNameInside;
    }

    /**
     * 去掉了相当多的繁体字
     * @return 随机生成一个汉字
     */
    private String insideSimpleLastName(){
        int hight,low;//二进制的高低位
        Random random= new Random();
        StringBuilder sBuilder = new StringBuilder();

        int lastLenght = 1+random.nextInt(2);

        for(int i=0;i<lastLenght;i++) {
            hight = 176+random.nextInt(39);
            low = 161+random.nextInt(93);
            byte[]han = new byte[2];
            han[0]= new Integer(hight).byteValue();
            han[1]= new Integer(low).byteValue();
            try {
                sBuilder.append(new String(han,"gbk"));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
        return sBuilder.toString();
    }

    /**
     * @return 全名
     */
    @Override
    public String getFullName() {
        return insideFirstName()+insideSimpleLastName();
    }
    /**
     * @return 数组,[姓,名]
     */
    @Override
    public String[] getSplitName() {
        String[] splitName = {insideFirstName(),insideSimpleLastName()};
        return splitName;
    }
    @Override
    public String getSimpleName() {
        return insideSimpleLastName();
    }

}

最后,封装使用工具类:


public class SimpleZhNameUtil {
    private final static class Holder{
        private static final SimpleZhName SIMPLE_ZH_NAME = new SimpleZhName();
    }
    /**
     * @return 全名
     */
    public static String getFullName() {
        return Holder.SIMPLE_ZH_NAME.getFullName();
    }
    /**
     * @return 数组,[姓,名]
     */
    public static String[] getSplitName() {
        return Holder.SIMPLE_ZH_NAME.getSplitName();
    }
    public static String getSimpleName() {
        return Holder.SIMPLE_ZH_NAME.getSimpleName();
    }

}

英文姓名生成原理中文一样,不过,英文的姓和名不知如何区分,目前只随机抽取。

同时,英文名应当具备中文译名。所以,应该准备两种姓名资源:

英文名:


class SourceEn {
    static String[] namesEn = {
            "Aaron",
            "Abel",
            "Abraham",
            "Adam",
            "Adrian",
            "Aidan",
            "Alva",
            "Alex",
            "Alexander",
            "Alan",
            "Albert",
            "Alfred",
            "Andrew",
            "Andy",
            "Angus",
            "Anthony",
            "Apollo",
            "Arnold",
            "Arthur",
            "August",
            "Austin",
            "Ben",
            "Benjamin",
            "Bert",
            "Benson",
            "Bill",
            "Billy",
            "Blake",
            "Bob",
            "Bobby",
            "Brad",
            "Brandon",
            "Brant",
            "Brent",
            "Brian",
            "Brown",
            "Bruce",
            "Caleb",
            "Cameron",
            "Carl",
            "Carlos",
            "Cary",
            "Caspar",
            "Cecil",
            "Charles",
            "Cheney",
            "Chris",
            "Christian",
            "Christopher",
            "Clark",
            "Cliff",
            "Cody",
            "Cole",
            "Colin",
            "Cosmo",
            "Daniel",
            "Denny",
            "Darwin",
            "David",
            "Dennis",
            "Derek",
            "Dick",
            "Donald",
            "Douglas",
            "Duke",
            "Dylan",
            "Eddie",
            "Edgar",
            "Edison",
            "Edmund",
            "Edward",
            "Edwin",
            "Elijah",
            "Elliott",
            "Elvis",
            "Eric",
            "Ethan",
            "Eugene",
            "Evan",
            "Enterprise",
            "Ford",
            "Francis",
            "Frank",
            "Franklin",
            "Fred",
            "Gabriel",
            "Gaby",
            "Garfield",
            "Gary",
            "Gavin",
            "Geoffrey",
            "George",
            "Gino",
            "Glen",
            "Glendon",
            "Hank",
            "Hardy",
            "Harrison",
            "Harry",
            "Hayden",
            "Henry",
            "Hilton",
            "Hugo",
            "Hunk",
            "Howard",
            "Henry",
            "Ian",
            "Ignativs",
            "Ivan",
            "Isaac",
            "Isaiah",
            "Jack",
            "Jackson",
            "Jacob",
            "James",
            "Jason",
            "Jay",
            "Jeffery",
            "Jerome",
            "Jerry",
            "Jesse",
            "Jim",
            "Jimmy",
            "Joe",
            "John",
            "Johnny",
            "Jonathan",
            "Jordan",
            "Jose",
            "Joshua",
            "Justin",
            "Keith",
            "Ken",
            "Kennedy",
            "Kenneth",
            "Kenny",
            "Kevin",
            "Kyle",
            "Lance",
            "Larry",
            "Laurent",
            "Lawrence",
            "Leander",
            "Lee",
            "Leo",
            "Leonard",
            "Leopold",
            "Leslie",
            "Loren",
            "Lori",
            "Lorin",
            "Louis",
            "Luke",
            "Marcus",
            "Marcy",
            "Mark",
            "Marks",
            "Mars",
            "Marshal",
            "Martin",
            "Marvin",
            "Mason",
            "Matthew",
            "Max",
            "Michael",
            "Mickey",
            "Mike",
            "Nathan",
            "Nathaniel",
            "Neil",
            "Nelson",
            "Nicholas",
            "Nick",
            "Noah",
            "Norman",
            "Oliver",
            "Oscar",
            "Owen",
            "Patrick",
            "Paul",
            "Peter",
            "Philip",
            "Phoebe",
            "Quentin",
            "Randall",
            "Randolph",
            "Randy",
            "Ray",
            "Raymond",
            "Reed",
            "Rex",
            "Richard",
            "Richie",
            "Riley",
            "Robert",
            "Robin",
            "Robinson",
            "Rock",
            "Roger",
            "Ronald",
            "Rowan",
            "Roy",
            "Ryan",
            "Sam",
            "Sammy",
            "Samuel",
            "Scott",
            "Sean",
            "Shawn",
            "Sidney",
            "Simon",
            "Solomon",
            "Spark",
            "Spencer",
            "Spike",
            "Stanley",
            "Steve",
            "Steven",
            "Stewart",
            "Stuart",
            "Terence",
            "Terry",
            "Ted",
            "Thomas",
            "Tim",
            "Timothy",
            "Todd",
            "Tommy",
            "Tom",
            "Thomas",
            "Tony",
            "Tyler",
            "Ultraman",
            "Ulysses",
            "Van",
            "Vern",
            "Vernon",
            "Victor",
            "Vincent",
            "Warner",
            "Warren",
            "Wayne",
            "Wesley",
            "William",
            "Willy",
            "Zack",
            "Zachary",
            "Abigail",
            "Abby",
            "Ada",
            "Adelaide",
            "Adeline",
            "Alexandra",
            "Ailsa",
            "Aimee",
            "Alexis",
            "Alice",
            "Alicia",
            "Alina",
            "Allison",
            "Alyssa",
            "Amanda",
            "Amy",
            "Amber",
            "Anastasia",
            "Andrea",
            "Angel",
            "Angela",
            "Angelia",
            "Angelina",
            "Ann",
            "Anna",
            "Anne",
            "Annie",
            "Anita",
            "Ariel",
            "April",
            "Ashley",
            "Audrey",
            "Aviva",
            "Barbara",
            "Barbie",
            "Beata",
            "Beatrice",
            "Becky",
            "Bella",
            "Bess",
            "Bette",
            "Betty",
            "Blanche",
            "Bonnie",
            "Brenda",
            "Brianna",
            "Britney",
            "Brittany",
            "Camille",
            "Candice",
            "Candy",
            "Carina",
            "Carmen",
            "Carol",
            "Caroline",
            "Carry",
            "Carrie",
            "Cassandra",
            "Cassie",
            "Catherine",
            "Cathy",
            "Chelsea",
            "Charlene",
            "Charlotte",
            "Cherry",
            "Cheryl",
            "Chloe",
            "Chris",
            "Christina",
            "Christine",
            "Christy",
            "Cindy",
            "Claire",
            "Claudia",
            "Clement",
            "Cloris",
            "Connie",
            "Constance",
            "Cora",
            "Corrine",
            "Crystal",
            "Daisy",
            "Daphne",
            "Darcy",
            "Dave",
            "Debbie",
            "Deborah",
            "Debra",
            "Demi",
            "Diana",
            "Dolores",
            "Donna",
            "Dora",
            "Doris",
            "Edith",
            "Editha",
            "Elaine",
            "Eleanor",
            "Elizabeth",
            "Ella",
            "Ellen",
            "Ellie",
            "Emerald",
            "Emily",
            "Emma",
            "Enid",
            "Elsa",
            "Erica",
            "Estelle",
            "Esther",
            "Eudora",
            "Eva",
            "Eve",
            "Evelyn",
            "Fannie",
            "Fay",
            "Fiona",
            "Flora",
            "Florence",
            "Frances",
            "Frederica",
            "Frieda",
            "Flta",
            "Gina",
            "Gillian",
            "Gladys",
            "Gloria",
            "Grace",
            "Grace",
            "Greta",
            "Gwendolyn",
            "Hannah",
            "Haley",
            "Hebe",
            "Helena",
            "Hellen",
            "Henna",
            "Heidi",
            "Hillary",
            "Ingrid",
            "Isabella",
            "Ishara",
            "Irene",
            "Iris",
            "Ivy",
            "Jacqueline",
            "Jade",
            "Jamie",
            "Jane",
            "Janet",
            "Jasmine",
            "Jean",
            "Jenna",
            "Jennifer",
            "Jenny",
            "Jessica",
            "Jessie",
            "Jill",
            "Joan",
            "Joanna",
            "Jocelyn",
            "Joliet",
            "Josephine",
            "Josie",
            "Joy",
            "Joyce",
            "Judith",
            "Judy",
            "Julia",
            "Juliana",
            "Julie",
            "June",
            "Karen",
            "Karida",
            "Katherine",
            "Kate",
            "Kathy",
            "Katie",
            "Katrina",
            "Kay",
            "Kayla",
            "Kelly",
            "Kelsey",
            "Kimberly",
            "Kitty",
            "Lareina",
            "Lassie",
            "Laura",
            "Lauren",
            "Lena",
            "Lydia",
            "Lillian",
            "Lily",
            "Linda",
            "lindsay",
            "Lisa",
            "Liz",
            "Lora",
            "Lorraine",
            "Louisa",
            "Louise",
            "Lucia",
            "Lucy",
            "Lucine",
            "Lulu",
            "Lydia",
            "Lynn",
            "Mabel",
            "Madeline",
            "Maggie",
            "Mamie",
            "Manda",
            "Mandy",
            "Margaret",
            "Mariah",
            "Marilyn",
            "Martha",
            "Mavis",
            "Mary",
            "Matilda",
            "Maureen",
            "Mavis",
            "Maxine",
            "May",
            "Mayme",
            "Megan",
            "Melinda",
            "Melissa",
            "Melody",
            "Mercedes",
            "Meredith",
            "Mia",
            "Michelle",
            "Milly",
            "Miranda",
            "Miriam",
            "Miya",
            "Molly",
            "Monica",
            "Morgan",
            "Nancy",
            "Natalie",
            "Natasha",
            "Nicole",
            "Nikita",
            "Nina",
            "Nora",
            "Norma",
            "Nydia",
            "Octavia",
            "Olina",
            "Olivia",
            "Ophelia",
            "Oprah",
            "Pamela",
            "Patricia",
            "Patty",
            "Paula",
            "Pauline",
            "Pearl",
            "Peggy",
            "Philomena",
            "Phoebe",
            "Phyllis",
            "Polly",
            "Priscilla",
            "Quentina",
            "Rachel",
            "Rebecca",
            "Regina",
            "Rita",
            "Rose",
            "Roxanne",
            "Ruth",
            "Sabrina",
            "Sally",
            "Sandra",
            "Samantha",
            "Sami",
            "Sandra",
            "Sandy",
            "Sarah",
            "Savannah",
            "Scarlett",
            "Selma",
            "Selina",
            "Serena",
            "Sharon",
            "Sheila",
            "Shelley",
            "Sherry",
            "Shirley",
            "Sierra",
            "Silvia",
            "Sonia",
            "Sophia",
            "Stacy",
            "Stella",
            "Stephanie",
            "Sue",
            "Sunny",
            "Susan",
            "Tamara",
            "Tammy",
            "Tanya",
            "Tasha",
            "Teresa",
            "Tess",
            "Tiffany",
            "Tina",
            "Tonya",
            "Tracy",
            "Ursula",
            "Vanessa",
            "Venus",
            "Vera",
            "Vicky",
            "Victoria",
            "Violet",
            "Virginia",
            "Vita",
            "Vivian"
    };

}

对应中文译名:


public class TranslateZh {
    static String[] namesZh = {
            "亚伦",
            "亚伯",
            "亚伯拉罕",
            "亚当",
            "艾德里安",
            "艾登",
            "阿尔瓦",
            "亚历克斯",
            "亚历山大",
            "艾伦",
            "艾伯特",
            "阿尔弗雷德",
            "安德鲁",
            "安迪",
            "安格斯",
            "安东尼",
            "阿波罗",
            "阿诺德",
            "亚瑟",
            "奥古斯特",
            "奥斯汀",
            "本",
            "本杰明",
            "伯特",
            "本森",
            "比尔",
            "比利",
            "布莱克",
            "鲍伯",
            "鲍比",
            "布拉德",
            "布兰登",
            "布兰特",
            "布伦特",
            "布赖恩",
            "布朗",
            "布鲁斯",
            "迦勒",
            "卡梅伦",
            "卡尔",
            "卡洛斯",
            "凯里",
            "卡斯帕",
            "塞西",
            "查尔斯",
            "采尼",
            "克里斯",
            "克里斯蒂安",
            "克里斯多夫",
            "克拉克",
            "柯利弗",
            "科迪",
            "科尔",
            "科林",
            "科兹莫",
            "丹尼尔",
            "丹尼",
            "达尔文",
            "大卫",
            "丹尼斯",
            "德里克",
            "狄克",
            "唐纳德",
            "道格拉斯",
            "杜克",
            "迪伦",
            "埃迪",
            "埃德加",
            "爱迪生",
            "艾德蒙",
            "爱德华",
            "艾德文",
            "以利亚",
            "艾略特",
            "埃尔维斯",
            "埃里克",
            "伊桑",
            "柳真",
            "埃文",
            "企业英语培训",