原文:http://www.jb51.net/article/45006.htm

package p2p_web;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
/**
* 字符随机生成类
* @author ASUS
*
*/
public class PassWord { /**
* 密码类型枚举
* @author ASUS
*/
public static enum TYPE {
/**
* 字符型
*/
LETTER,
/**
* 大写字符型
*/
CAPITAL,
/**
* 数字型
*/
NUMBER,
/**
* 符号型
*/
SIGN,
/**
* 大+小字符 型
*/
LETTER_CAPITAL,
/**
* 小字符+数字 型
*/
LETTER_NUMBER,
/**
* 大+小字符+数字 型
*/
LETTER_CAPITAL_NUMBER,
/**
* 大+小字符+数字+符号 型
*/
LETTER_CAPITAL_NUMBER_SIGN
} private static String[] lowercase = {
"a","b","c","d","e","f","g","h","i","j","k",
"l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}; private static String[] capital = {
"A","B","C","D","E","F","G","H","I","J","K",
"L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; private static String[] number = {
"1","2","3","4","5","6","7","8","9","0"}; private static String[] sign = {
"~","!","@","#","$","%","^","&","*","(",")","_","+","`","-","=",
"{","}","|",":","\"","<",">","?",
"[","]","\\",";","'",",",".","/"}; /**
* 静态随机数
*/
private static Random random = new Random(); public static void main(String[] args) {
System.out.println(PassWord.getRandom(24, PassWord.TYPE.LETTER_CAPITAL_NUMBER_SIGN));
} /**
* 获取随机组合码
* @param num 位数
* @param type 类型
* @type
* <br>字符型 LETTER,
* <br>大写字符型 CAPITAL,
* <br>数字型 NUMBER,
* <br>符号型 SIGN,
* <br>大+小字符型 LETTER_CAPITAL,
* <br>小字符+数字 型 LETTER_NUMBER,
* <br>大+小字符+数字 型 LETTER_CAPITAL_NUMBER,
* <br>大+小字符+数字+符号 型 LETTER_CAPITAL_NUMBER_SIGN
*/
public static String getRandom(int num,TYPE type){
ArrayList<String> temp = new ArrayList<String>();
StringBuffer code = new StringBuffer();
if(type == TYPE.LETTER){
temp.addAll(Arrays.asList(lowercase));
}else if(type == TYPE.CAPITAL){
temp.addAll(Arrays.asList(capital));
}else if(type == TYPE.NUMBER){
temp.addAll(Arrays.asList(number));
}else if(type == TYPE.SIGN){
temp.addAll(Arrays.asList(sign));
}else if(type == TYPE.LETTER_CAPITAL){
temp.addAll(Arrays.asList(lowercase));
temp.addAll(Arrays.asList(capital));
}else if(type == TYPE.LETTER_NUMBER){
temp.addAll(Arrays.asList(lowercase));
temp.addAll(Arrays.asList(number));
}else if(type == TYPE.LETTER_CAPITAL_NUMBER){
temp.addAll(Arrays.asList(lowercase));
temp.addAll(Arrays.asList(capital));
temp.addAll(Arrays.asList(number));
}else if(type == TYPE.LETTER_CAPITAL_NUMBER_SIGN){
temp.addAll(Arrays.asList(lowercase));
temp.addAll(Arrays.asList(capital));
temp.addAll(Arrays.asList(number));
temp.addAll(Arrays.asList(sign));
}
for (int i = 0; i < num; i++) {
code.append(temp.get(random.nextInt(temp.size())));
}
return code.toString();
}
}

java随机生成字符串(字符随机生成类 生成随机字符组合)的更多相关文章

  1. Java的整个字符串的结束索引在最后一个字符之外

    /** * Created by xfyou on 2016/11/4. */ public class SubstringDemo { public static void main(String[ ...

  2. java 中操作字符串都有哪些类?(未完成)它们之间有什么区别?(未完成)

    java 中操作字符串都有哪些类?(未完成)它们之间有什么区别?(未完成)

  3. JAVA insert() 插入字符串 reverse() 颠倒 delete()和deleteCharAt() 删除字符 replace() 替换 substring() 截取子串

    insert() 插入字符串 StringBuffer insert(int index,String str) StringBuffer insert(int index,char ch) Stri ...

  4. 生成二维码 加密解密类 TABLE转换成实体、TABLE转换成实体集合(可转换成对象和值类型) COOKIE帮助类 数据类型转换 截取字符串 根据IP获取地点 生成随机字符 UNIX时间转换为DATETIME\DATETIME转换为UNIXTIME 是否包含中文 生成秘钥方式之一 计算某一年 某一周 的起始时间和结束时间

    生成二维码 /// <summary>/// 生成二维码/// </summary>public static class QRcodeUtils{private static ...

  5. js产生一个随机的字符串数字组合

    /** * 随机生成字符串 * @param randomFlag 产生任意长度随机字母数字组合 * @param min 任意长度最小位[固定位数] * @param max 任意长度最大位 * @ ...

  6. java随机生成字符串工具类

    package aA; import java.util.ArrayList; import java.util.Arrays; import java.util.Random; /** * 字符随机 ...

  7. RandomStringUtils工具类(java随机生成字符串)

    使用RandomStringUtils可以选择生成随机字符串,可以是全字母,全数字,自定义生成字符等等... 其最基础的方法: 参数解读: count:需要生成的随机串位数 letters:只要字母 ...

  8. java随机生成字符串和校验

    首先定义字符串 String a = "0123456789"; // 数字 String b = "abcdefghijklmnopqrstuvwxyz"; ...

  9. Java随机字符串:随机数字字符串,工具类

    Java中生成随机数,字符串的工具类 1. 调用方法需要传入生成字符串的长度和需要的类型 生成随机数字 生成随机字母字符串 生成随机字符串+数字等 ......... 2. 总共8种类型,具体看工具类 ...

随机推荐

  1. 从 C10K 到 C500K

    国外的 Urban Airship 公司的工程师在其官方网志上发文章介绍他们在产品环境中做到 50 万并发客户端,Java + Pure NIO 的实现,最近又有文章介绍针对 Linux Kernel ...

  2. 转换 nvarchar 值 '2013071200000578' 时溢出了整数列

    sqlserver 把一个nvarchar 与 int  类型 拼接 会自动转换 INT 做运算,nvarchar 类型有16位 转换失败 只能 str(int) 转换成 字符型 进行拼接 (sqls ...

  3. js 清除文本中的html标签

    text.replace(/<[^>]+>/g,"");

  4. Spring框架jar包分类(转)

    转自:http://www.cnblogs.com/JSONBEAN/p/6364038.html 长期以来都在写SSM框架的项目,却未能深入理解框架的搭建原理,而只是浅薄的理解前辈的架构,然后不断套 ...

  5. POJ 1039 Pipe | 线段相交

    题目: 给一个管子,有很多转弯处,问从管口的射线射进去最长能射到多远 题解: 根据黑书,可以证明的是这条光线一定经过了一个上顶点和下顶点 所以我们枚举每对上下顶点就可以了 #include<cs ...

  6. NOIP2017赛前模拟11月6日—7日总结

    收获颇丰的两天··· 题目1:序列操作 给定n个非负整数,进行m次操作,每次操作给出c,要求找出c个正整数数并将它们减去1,问最多能进行多少操作?n,m<=1000000 首先暴力贪心肯定是每次 ...

  7. 原生js提取非行间样式

    js用style属性可以获得html标签的样式,但是不能获取非行间样式,如何获取css的非行间样式呢,在低版本ie我们可以用currentStyle,在其他浏览器我们可以用getComputedSty ...

  8. js对象和jq对象互相转换

    1.DOM 对象转成 jQuery 对象 var v = document.getElementById("v"); //DOM对象 var $v = $(v); //jQuery ...

  9. i18n(国际化) 和l18n(本地化)时的地域标识代码

    i18n(国际化) 和l18n(本地化)时的地域标识代码 格式如 zh-CN(语言-国家) i18n(国际化) 和l18n(本地化)时的地域标识代码 格式如 zh-CN(语言-国家) 国家说明 语言说 ...

  10. HDU2824 The Euler function

    Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Description The Eule ...