ITPub博客

首页 > 数据库 > 数据库开发技术 > 阿拉伯数字转成汉字

阿拉伯数字转成汉字

原创 数据库开发技术 作者:FunTester 时间:2019-09-29 09:48:05 0 删除 编辑

在批量使用测试账号的时候,需要对账号进行标记,一般用username字段,之前的策略是统一的名称+用户编号(测试用户的编号,非用户id),由于需求变更,用户username不允许使用数字了,所以需要把数字转成汉字来进行标记。

下面分享集中方法:

private static String change1(int n) {// 数字转换成汉字表示
        String[] c = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
        String ss = n + "";//把输入的内容转换成String类型字符串
        StringBuilder builder = new StringBuilder("");
        int j;
        for (int i = 0; i < ss.length(); i++) {
            for (j = 0; j <= 9; j++) {// 遍历ss字符串中每个字符并追加到builder中
                if (ss.charAt(i) == j + '0') {
                    break;
                }
            }
            builder.append(c[j]);//往builder对象中追加获取的字符
        }
        return builder.toString();//返回该字符串
    }

    private static String change2(int n) {// 数字转换成汉字表示
        String[] c = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
        String ss = n + "";//把输入的内容转换成String类型字符串
        StringBuilder builder = new StringBuilder("");
        for (int i = 0; i < ss.length(); i++) {
            char c1 = ss.charAt(i);
            int i1 = Integer.parseInt(c1 + "");
            builder.append(c[i1]);//往builder对象中追加获取的字符
        }
        return builder.toString();//返回该字符串
    }

    private static String change3(int n) {// 数字转换成汉字表示
        String[] c = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
        String ss = n + "";//把输入的内容转换成String类型字符串
        StringBuilder builder = new StringBuilder("");
        IntStream.range(0, ss.length()).forEach(x -> builder.append(c[Integer.valueOf(ss.charAt(x) + "")]));
        return builder.toString();//返回该字符串
    }

    private static String change4(int n) {// 数字转换成汉字表示
        String[] c = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
        return IntStream.range(0, (n + "").length()).mapToObj(x -> c[Integer.valueOf((n + "").charAt(x) + "")]).collect(Collectors.joining()).toString();
    }

    private static String change5(int n) {// 数字转换成汉字表示
        String[] c = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
        return Arrays.asList((n + "").toCharArray()).stream().map(x -> c[Integer.valueOf(x + "")]).collect(Collectors.joining()).toString();
    }

由于使用了脚本语言Groovy,所以功能还是需要用Groovy写的,下面是Groovy版本:

    static String[] chineses = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"]

    static String[] capeChineses = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"]
/**
 * 将int类型转化为汉子数字,对于3位数的数字自动补零
 * @param i
 * @return
 */

    static String getChinese(int i) {
        if (i <= 0) return "零零零"
        String num = (i + EMPTY).collect { x -> chineses[changeStringToInt(x)] }.join()
        num.length() > 2 ? num : getManyString(chineses[0] + EMPTY, 3 - num.length()) + num
    }

/**
 * 将int类型转化汉字大写数字表示
 * @param i
 * @return
 */

    static String getCapeChinese(int i) {
        (i + EMPTY).collect { x -> capeChineses[changeStringToInt(x)] }.join()
    }

不得不说,脚本语言真香。

技术类文章精选

  1. java一行代码打印心形

  2. Linux性能监控软件netdata中文汉化版

  3. 接口测试代码覆盖率(jacoco)方案分享

  4. 性能测试框架

  5. 如何在Linux命令行界面愉快进行性能测试

  6. 图解HTTP脑图

  7. 将swagger文档自动变成测试代码

  8. 五行代码构建静态博客

  9. 基于java的直线型接口测试框架初探

非技术文章精选

  1. 为什么选择软件测试作为职业道路?

  2. 写给所有人的编程思维

  3. 自动化测试的障碍

  4. 自动化测试的问题所在

  5. 成为优秀自动化测试工程师的7个步骤

  6. 未来10年软件测试的新趋势-上

  7. 未来10年软件测试的新趋势-上

  8. 自动化测试解决了什么问题

  9. 17种软件测试人员常用的高效技能-上

  10. 17种软件测试人员常用的高效技能-下

大咖风采

  1. Tcloud 云测平台--集大成者

  2. Android App 测试工具及知识大集合

点击查看公众号地图

原文作者:FunTester;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2019-07-07

  • 博文量
    1037
  • 访问量
    420699