史上最全的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 ...
随机推荐
- ListView.MultiChoiceModeListener
参考:http://www.cnblogs.com/a284628487/p/3460400.html和http://blog.csdn.net/mayingcai1987/article/detai ...
- 【Tomcat】java.lang.OutOfMemoryError
1.Java heap space Heap size 昨天在服务器上面部署项目,之前服务器上面已经有一个项目的了. 然后我再部署一个,上去跑了之后,居然内存溢出了. 好吧,内存溢出就调一下,调了之后 ...
- 写一方法用来计算1+2+3+...n,其中n作为参数输入,返回值可以由方法名返回,也可以由参数返回
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- BZOJ 1911: [Apio2010]特别行动队( dp + 斜率优化 )
sum为战斗力的前缀和 dp(x) = max( dp(p)+A*(sumx-sump)2+B*(sumx-sump)+C )(0≤p<x) 然后斜率优化...懒得写下去了... ------- ...
- BZOJ 3407: [Usaco2009 Oct]Bessie's Weight Problem 贝茜的体重问题( dp )
01背包... ----------------------------------------------------------------------- #include<cstdio&g ...
- USACO Money Systems Dp 01背包
一道经典的Dp..01背包 定义dp[i] 为需要构造的数字为i 的所有方法数 一开始的时候是这么想的 for(i = 1; i <= N; ++i){ for(j = 1; j <= V ...
- USACO Hamming Codes DFS 构造
我还是用了很朴素的暴力匹配A了这题,不得不感叹USACO时间放的好宽... /* ID: wushuai2 PROG: hamming LANG: C++ */ //#pragma comment(l ...
- c语言‘\0’ ,‘0’, “0” ,0之间的区别
首先比较一下‘\0’和‘0’的区别.有一个共同点就是它们都是字符,在c语言中,字符是按其所对应的ASCII码来存储的,一个字符占一个字节.请翻开你的ASCII字符集表吧,一般在你的C语言教材的附录上, ...
- Chapter 17 Replication 复制
Chapter 17 Replication 复制 Table of Contents 17.1 Replication Configuration 17.2 Replication Implemen ...
- 具体解释EBS接口开发之WIP模块接口
整体说明 文档目的 本文档针对WIP模块业务功能和接口进行分析和研究,对採用并发请求方式和调用API方式分别进行介绍 内容 WIP模块经常使用标准表简单介绍 WIP事物处理组成 WIP相关业务流程 W ...