史上最全的java随机数/字符串生成算法(转)
代码如下:
- package com.zuidaima.core.util;
- import java.util.Random;
- public class RandomUtil {
- public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
- public static final String LETTERCHAR = "abcdefghijkllmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
- public static final String NUMBERCHAR = "0123456789";
- /**
- * 返回一个定长的随机字符串(只包含大小写字母、数字)
- *
- * @param length
- * 随机字符串长度
- * @return 随机字符串
- */
- public static String generateString(int length) {
- StringBuffer sb = new StringBuffer();
- Random random = new Random();
- for (int i = 0; i < length; i++) {
- sb.append(ALLCHAR.charAt(random.nextInt(ALLCHAR.length())));
- }
- return sb.toString();
- }
- /**
- * 返回一个定长的随机纯字母字符串(只包含大小写字母)
- *
- * @param length
- * 随机字符串长度
- * @return 随机字符串
- */
- public static String generateMixString(int length) {
- StringBuffer sb = new StringBuffer();
- Random random = new Random();
- for (int i = 0; i < length; i++) {
- sb.append(ALLCHAR.charAt(random.nextInt(LETTERCHAR.length())));
- }
- return sb.toString();
- }
- /**
- * 返回一个定长的随机纯大写字母字符串(只包含大小写字母)
- *
- * @param length
- * 随机字符串长度
- * @return 随机字符串
- */
- public static String generateLowerString(int length) {
- return generateMixString(length).toLowerCase();
- }
- /**
- * 返回一个定长的随机纯小写字母字符串(只包含大小写字母)
- *
- * @param length
- * 随机字符串长度
- * @return 随机字符串
- */
- public static String generateUpperString(int length) {
- return generateMixString(length).toUpperCase();
- }
- /**
- * 生成一个定长的纯0字符串
- *
- * @param length
- * 字符串长度
- * @return 纯0字符串
- */
- public static String generateZeroString(int length) {
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < length; i++) {
- sb.append('0');
- }
- return sb.toString();
- }
- /**
- * 根据数字生成一个定长的字符串,长度不够前面补0
- *
- * @param num
- * 数字
- * @param fixdlenth
- * 字符串长度
- * @return 定长的字符串
- */
- public static String toFixdLengthString(long num, int fixdlenth) {
- StringBuffer sb = new StringBuffer();
- String strNum = String.valueOf(num);
- if (fixdlenth - strNum.length() >= 0) {
- sb.append(generateZeroString(fixdlenth - strNum.length()));
- } else {
- throw new RuntimeException("将数字" + num + "转化为长度为" + fixdlenth
- + "的字符串发生异常!");
- }
- sb.append(strNum);
- return sb.toString();
- }
- /**
- * 每次生成的len位数都不相同
- *
- * @param param
- * @return 定长的数字
- */
- public static int getNotSimple(int[] param, int len) {
- Random rand = new Random();
- for (int i = param.length; i > 1; i--) {
- int index = rand.nextInt(i);
- int tmp = param[index];
- param[index] = param[i - 1];
- param[i - 1] = tmp;
- }
- int result = 0;
- for (int i = 0; i < len; i++) {
- result = result * 10 + param[i];
- }
- return result;
- }
- public static void main(String[] args) {
- System.out.println("返回一个定长的随机字符串(只包含大小写字母、数字):" + generateString(10));
- System.out
- .println("返回一个定长的随机纯字母字符串(只包含大小写字母):" + generateMixString(10));
- System.out.println("返回一个定长的随机纯大写字母字符串(只包含大小写字母):"
- + generateLowerString(10));
- System.out.println("返回一个定长的随机纯小写字母字符串(只包含大小写字母):"
- + generateUpperString(10));
- System.out.println("生成一个定长的纯0字符串:" + generateZeroString(10));
- System.out.println("根据数字生成一个定长的字符串,长度不够前面补0:"
- + toFixdLengthString(123, 10));
- int[] in = { 1, 2, 3, 4, 5, 6, 7 };
- System.out.println("每次生成的len位数都不相同:" + getNotSimple(in, 3));
- }
- }
史上最全的java随机数/字符串生成算法(转)的更多相关文章
- 史上最全的java随机数生成算法分享(转)
这篇文章主要介绍了史上最全的java随机数生成算法,我分享一个最全的随机数的生成算法,最代码的找回密码的随机数就是用的这个方法 String password = RandomUtil.generat ...
- 史上最全的 Java 新手问题汇总
史上最全的 Java 新手问题汇总 Java是目前最流行的编程语言之一——它可以用来编写Windows程序或者是Web应用,移动应用,网络程序,消费电子产品,机顶盒设备,它无处不在. 有超过30亿 ...
- 史上最全阿里 Java 面试题总结
以下为大家整理了阿里巴巴史上最全的 Java 面试题,涉及大量 Java 面试知识点和相关试题. JAVA基础 JAVA中的几种基本数据类型是什么,各自占用多少字节. String类能被继承吗,为什么 ...
- 史上最全的Java高级技术点,全是Java高级进阶技术,几乎包含了Java后端的所有知识点
史上最全的Java高级技术点,全是Java高级进阶技术,几乎包含了Java后端的所有知识点 1
- 史上最全最新java面试题合集二(附答案)
下面小编整理了本套java面试题全集,分享给大家,希望对大家的java学习和就业面试有所帮助. 51.类ExampleA继承Exception,类ExampleB继承ExampleA. 有如下代码片断 ...
- 告别编码5分钟,命名2小时!史上最全的Java命名规范参考!
简洁清爽的代码风格应该是大多数工程师所期待的.在工作中笔者常常因为起名字而纠结,夸张点可以说是编程5分钟,命名两小时!究竟为什么命名成为了工作中的拦路虎. 每个公司都有不同的标准,目的是为了保持统一, ...
- 史上最全的Java命名规范[转]
每个公司都有不同的标准,目的是为了保持统一,减少沟通成本,提升团队研发效能.所以本文中是笔者结合阿里巴巴开发规范,以及工作中的见闻针对Java领域相关命名进行整理和总结,仅供参考. 一.Java中的命 ...
- 史上最全最新Java面试题合集一(附答案)
下面小编整理了本套java面试题全集,分享给大家,希望对大家的java学习和就业面试有所帮助. 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征 ...
- 史上最全的java随机数生成算法[转载]
package com.zuidaima.core.util; import java.util.Random; public class RandomUtil { public static fin ...
随机推荐
- 设计模式(一)工厂模式Factory(创建型)
设计模式一 工厂模式Factory 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.可是在一些情况下, new操作符直接生成对象会带来一些问题. ...
- Python重写C语言程序100例--Part9
''' [程序71] 题目:编写input()和output()函数输入,输出5个学生的数据记录. 1.程序分析: 2.程序源码: 使用list来模拟结构(不使用class) stu = [strin ...
- MyEclipse10+Jdk1.7+OSGI+MySql实现CRUD数据库
开发环境: Windows2008R2 64位置+MyEclipse10+jdk1.7.0_67+MySql5.5 软件安装:myeclipse-10.0-offline-installer-wind ...
- BZOJ 1060: [ZJOI2007]时态同步( 树形dp )
坑爹...数据是错的..详见discuss http://www.lydsy.com/JudgeOnline/wttl/wttl.php?pid=1060 先求根到叶子的距离最大值x, 然后把所有叶 ...
- BZOJ 2654: tree( 二分 + MST )
我们给白色的边增加权值 , 则选到的白色边就会变多 , 因此可以二分一下. 不过这道题有点小坑... ------------------------------------------------- ...
- docker学习笔记15:Dockerfile 指令 USER介绍
USER指令用于指定容器执行程序的用户身份,默认是 root用户. 在docker run 中可以通过 -u 选项来覆盖USER指令的设置. 举例:docker run -i -t -u mysql ...
- JavaEE Tutorials (3) - 企业bean
3.1什么是企业bean383.1.1企业bean的好处393.1.2何时使用企业bean393.1.3企业bean类型393.2什么是会话bean393.2.1会话bean类型403.2.2何时使用 ...
- HDU 4739 求正方形个数
九野的博客,转载请注明出处:http://blog.csdn.net/acmmmm/article/details/11711707 求所有可能围成的正方形,借个代码 #include <que ...
- QTP的基本功能介绍
• QTP的基本功能介绍 HP QuickTest Professional 支持功能測试和回归測试自己主动化,用于每一个主要软件应用程序和环境.此解决方式使用keyword驱动的測试概念,简化了測试 ...
- Linux: 信息查看
Linux log日志查看 http://www.2cto.com/os/201307/227230.html