博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Rand工具类
阅读量:5967 次
发布时间:2019-06-19

本文共 1313 字,大约阅读时间需要 4 分钟。

这篇文章已经废弃。

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

 

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));    }}

 

运行两次的结果

 

转载于:https://www.cnblogs.com/deolin/p/6985481.html

你可能感兴趣的文章
nodeJs 接收请求参数和发送请求参数
查看>>
第三次作业——K米评测
查看>>
js 闭包
查看>>
Web工程师必备的43款可视化工具
查看>>
【算法学习笔记】73.数学规律题 SJTU OJ 1058 小M的机器人
查看>>
南理工14级第4组软件课程设计报告
查看>>
27. Spring Boot 部署与服务配置
查看>>
mybatis No enum const class org.apache.ibatis.type.JdbcType.Date 坑爹的配置
查看>>
Tecent Iphone Qzone Clint Login.js(相当规范)
查看>>
Hbuilder连接安卓模拟器,调试app
查看>>
-------------初识----------动态规划。--------------------------------------------
查看>>
Quick Sort(三向切分的快速排序)(Java)
查看>>
Union/find--不相交集类(并查集)
查看>>
P5112 FZOUTSY
查看>>
设计模式
查看>>
linux find命令
查看>>
linux losetup
查看>>
ios app抓包分析
查看>>
格式字符
查看>>
iphone-common-codes-ccteam源代码 CCMemory.h
查看>>