• Rand工具类


    这篇文章已经废弃。

    实际开发中,这个工具类用到得非常少。

    RandN是主要类,用于生成指定位数的随机字符串,具体功能在这个类中实现

    Rand8是修饰了RandN中每个对外方法的修饰类,用与生成8位的随机字符串(Deolin经常用到这个位数)

    为了减少重复代码,RandN中的方法分了三层。这里选取一个方法系列为例。

    第一层

    以这两个方法为例,这里采用了两种策略——不提供种子和提供种子,由于这两种策略的不同指出仅仅体现在Random对象上,

    所以将这两种策略封装成了new Random(),连同size一起,向下一层转递。

    size在这层中只是一个过客。

    第二层

    从这一层开始,方法全部都是私有的,作为外部方法的代码封装使用。

    而这个方法,因为让上一层生成的Random对象入参,所以它是那两个方法的共用部分。

    它的作用是生成构建一个符合方法名的字符数组,连同Random对象和size一起,向下层传递

    Random对象和size在这层中只是过客。

    第三层

    这是最后一层的方法了,这层只有它一个。

    从参数可以看上,客户端和上两层生成的信息全部汇总到了这个,

    这个方法可以根据任意的随机策略,在任意的字符数组里,生成任意长度的字符串,

    最后一层层向外返回。

    更具体的实现需要查看源码,最后放上使用实例。

    package io.deolin.commons.simplify.test;
    
    import static io.deolin.commons.simplify.RandN.*;
    import static io.deolin.commons.simplify.Rand8.*;
    import static io.deolin.commons.simplify.Print.*;
    
    public class RandTest {
    
        public static void main(String[] args) {
            long seed = 123L;
    
            ln(r8());
            ln(r8(seed));
            ln();
            ln(nr8());
            ln(nr8(seed));
            ln();
            ln(cr8());
            ln(cr8(seed));
            ln();
            ln(lcr8());
            ln(lcr8(seed));
    
            ln(rn(20));
            ln(rn(seed, 4));
            ln();
            ln(nrn(20));
            ln(nrn(seed, 4));
            ln();
            ln(crn(20));
            ln(crn(seed, 4));
            ln();
            ln(lcrn(20));
            ln(lcrn(seed, 4));
        }
    
    }

    运行两次的结果

  • 相关阅读:
    VMware安装Centos7超详细过程
    LVS+Keepalived小试牛刀
    Spring入门之AOP篇
    Spring学习笔记及资源
    Spring入门第一例
    Mybatis学习手记(二)
    Mybatis学习手记(一)
    java web 开发入门实例
    关于JAVA编译时找不到自定义包的问题
    Java 学习笔记及资源
  • 原文地址:https://www.cnblogs.com/deolin/p/6985481.html
Copyright © 2020-2023  润新知