Java 生成随机中文、英文姓名(下)

基本介绍

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

这个 jar 使用 json 的方式存取姓名资源,json 文件放在jar包之中。

项目依赖于Json-Java解析json。

点击下载

效果预览:

Java 生成随机中文、英文姓名(下)_第1张图片

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

其他说明

代码

JRandomNameTool.java:

package com.lu.jsn;
import com.lu.jsn.en.JEnglishNameUtil;
import com.lu.jsn.zh.JSimpleZhNameUtil;

public class JRandomNameTool {

    /**
     * @return 名字
     */
    public static String getSimpleName(Language language) {
        JNameUtilI jRandomNameI = null;
        switch (language) {
        case en:
            jRandomNameI = JEnglishNameUtil.prepare();
            break;
        case zh:
            jRandomNameI = JSimpleZhNameUtil.prepare();
            break;
        default:
            jRandomNameI = JEnglishNameUtil.prepare();
            break;
        }
        return jRandomNameI.getSimpleFullName();
    }   
    /**
     * @return 名字
     */
    public static String getSimpleName() {
        int r = (int)(Math.random()*Language.values().length);      
        return getSimpleName(Language.values()[r]);
    }
    public static void clean() {
        JEnglishNameUtil.clean();
        JSimpleZhNameUtil.clean();
    }

}

使用和测试:

package com.lu.jsn;

import org.junit.Test;

public class JRandomNameToolTest {

    @Test
    public void test() {
        System.out.println("---------------随机多语言姓名---------------");
        for(int i=0;i<50;i++) {         
            System.out.println(JRandomNameTool.getSimpleName());
        }
        System.out.println("--------------随机英文名----------------");
        for(int i=0;i<50;i++) {         
            System.out.println(JRandomNameTool.getSimpleName(Language.en));
        }
        System.out.println("--------------随机中文名----------------");
        for(int i=0;i<50;i++) {         
            System.out.println(JRandomNameTool.getSimpleName(Language.zh));
        }
    }

}

调用说明

类间关系图:

Java 生成随机中文、英文姓名(下)_第2张图片

生成基本的名字的使用可以通过JRandomNameTool完成。

针对性的生成通过具体的工具类,如 JEnglishUtils、JSimpleZhNameUtil生成。

更具体的,扩展性的则通过最细致的 JEnlishName 、JSimpleZhName完成。这一层次负责生成具体的名字,所有关于生成名字的细节都在这里。(关于英文和中文的生成,有部分不能完成,因为不熟悉英文的姓氏,以及部分接口方法是么有实现的)

——end

你可能感兴趣的:(Java初探)