1. package aA;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.Random;
  6.  
  7. /**
  8. * 字符随机生成类
  9. */
  10. public class RandomDemo {
  11. /**
  12. * 随机产生类型枚举
  13. */
  14. public static enum TYPE {
  15. /**小字符型*/
  16. LETTER,
  17. /**大写字符型*/
  18. CAPITAL,
  19. /**数字型*/
  20. NUMBER,
  21. /**大+小字符 型*/
  22. LETTER_CAPITAL,
  23. /**小字符+数字 型*/
  24. LETTER_NUMBER,
  25. /**大写字符+数字*/
  26. CAPITAL_NUMBER,
  27. /**大+小字符+数字 型*/
  28. LETTER_CAPITAL_NUMBER,
  29. }
  30. private static String[] lowercase = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
  31. "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" };
  32.  
  33. private static String[] capital = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
  34. "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };
  35.  
  36. private static String[] number = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" };
  37.  
  38. /**
  39. * 静态随机数
  40. */
  41. private static Random random = new Random();/**
  42. * 获取随机组合码
  43. * @param num 位数
  44. * @param type 类型
  45. * @type
  46. * <br>小写字符型 LETTER,
  47. * <br>大写字符型 CAPITAL,
  48. * <br>数字型 NUMBER,
  49. * <br>大+小字符型 LETTER_CAPITAL,
  50. * <br>小字符+数字 型 LETTER_NUMBER,
  51. * <br>大字符+数字 型 CAPITAL_NUMBER,
  52. * <br>大+小字符+数字 型 LETTER_CAPITAL_NUMBER,
  53. */
  54. public static String getRandom(int num, TYPE type) {
  55. ArrayList<String> temp = new ArrayList<String>();
  56. StringBuffer code = new StringBuffer();
  57. switch (type) {
  58. case LETTER:
  59. temp.addAll(Arrays.asList(lowercase));
  60. break;
  61. case CAPITAL:
  62. temp.addAll(Arrays.asList(capital));
  63. break;
  64. case NUMBER:
  65. temp.addAll(Arrays.asList(number));
  66. break;
  67. case LETTER_CAPITAL:
  68. temp.addAll(Arrays.asList(lowercase));
  69. temp.addAll(Arrays.asList(capital));
  70. break;
  71. case LETTER_NUMBER:
  72. temp.addAll(Arrays.asList(lowercase));
  73. temp.addAll(Arrays.asList(number));
  74. break;
  75. case CAPITAL_NUMBER:
  76. temp.addAll(Arrays.asList(capital));
  77. temp.addAll(Arrays.asList(number));
  78. break;
  79. case LETTER_CAPITAL_NUMBER:
  80. temp.addAll(Arrays.asList(lowercase));
  81. temp.addAll(Arrays.asList(capital));
  82. temp.addAll(Arrays.asList(number));
  83. break;
  84. }
  85. for (int i = 0; i < num; i++) {
  86. code.append(temp.get(random.nextInt(temp.size())));
  87. }
  88. return code.toString();
  89. }
      //测试
  1.  public static void main(String[] args) {
  2. System.out.println(RandomDemo.getRandom(10, RandomDemo.TYPE.LETTER_CAPITAL));
  3. }
  1. }

java随机生成字符串工具类的更多相关文章

  1. JAVA自动生成正则表达式工具类

    经过很久的努力,终于完成了JAVA自动生成正则表达式工具类.还记得之前需要正则,老是从网上找吗?找了想修改也不会修改.现在不用再为此烦恼了,使用此生成类轻松搞定所有正则表达式.赶快在同事面前炫一下吧. ...

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

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

  3. java随机生成字符串(字符随机生成类 生成随机字符组合)

    原文:http://www.jb51.net/article/45006.htm package p2p_web; import java.util.ArrayList; import java.ut ...

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

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

  5. 产生UUID随机字符串工具类

    产生UUID随机字符串工具类 UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成的API.按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址. ...

  6. java后端时间处理工具类,返回 "XXX 前" 的字符串

    转自:https://www.cnblogs.com/devise/p/9974672.html 我们经常会遇到显示 "某个之间之前" 的需求(比如各种社交软件,在回复消息时,显示 ...

  7. java中常用的工具类(三)

    继续分享java中常用的一些工具类.前两篇的文章中有人评论使用Apache 的lang包和IO包,或者Google的Guava库.后续的我会加上的!谢谢支持IT江湖 一.连接数据库的综合类       ...

  8. StringUtils 字符串工具类

    package com.thinkgem.jeesite.common.utils; import java.io.File; import java.io.IOException; import j ...

  9. Java 后台验证的工具类

    Java 后台验证的工具类 public class ValidationUtil {         //手机号     public static String mobile = "^( ...

随机推荐

  1. Git log和reflog

    1.log  log命令可以显示所有提交过的版本信息.显示信息如下: Administrator@USER-20171026MG MINGW64 ~/Desktop/lyf (master) $ gi ...

  2. Jodd - Java界的瑞士军刀轻量级工具包!

    Jodd介绍 Jodd是对于Java开发更便捷的开源迷你框架,包含工具类.实用功能的集合,总包体积不到1.7M. Jodd构建于通用场景使开发变得简单,但Jodd并不简单!它能让你把事情做得更好,实现 ...

  3. POJ 1269 /// 判断两条直线的位置关系

    题目大意: t个测试用例 每次给出一对直线的两点 判断直线的相对关系 平行输出NODE 重合输出LINE 相交输出POINT和交点坐标 1.直线平行 两向量叉积为0 2.求两直线ab与cd交点 设直线 ...

  4. shell脚本练习06

    ######################################################################### # File Name: -.sh # Author ...

  5. CentOS7-Minimal安装MySQL服务

    CentOS7默认安装的是Mariadb而不是mysql,而Mariadb是mysql的一个分支, 安装mysql会覆盖Mariadb 一.下载MySQL官方的 Yum Repository [roo ...

  6. thinkphp3.2.3 nginx 连接mysql 报错 new PDO 异常

    在 php.ini 里重新指定mysql.sock 路径 pdo_mysql.default_socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql ...

  7. Python-线程(1)

    目录 什么是线程 进程与线程的区别 开启线程 为什么要使用线程 线程之间数据是共享的 什么是线程 线程与进程都是虚拟单位,目的是为了更好的描述某种事物 进程与线程的区别 进程:资源单位 线程:执行单位 ...

  8. 洛谷P4027 [NOI2007]货币兑换

    P4027 [NOI2007]货币兑换 算法:dp+斜率优化 题面十分冗长,题意大概是有一种金券每天价值会有变化,你可以在某些时间点买入或卖出所有的金券,问最大收益 根据题意,很容易列出朴素的状态转移 ...

  9. SpringBoot_02_SpringBoot的配置文件

    1.SpringBoot配置文件 SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者appli ...

  10. Joomla - 部署(线上部署)

    一.线上部署 线上部署可以理解为把本地网站迁移到线上,使用 akeeba backup 进行备份和迁移即可 参考 Joomla - akeeba backup(joomla网站备份.迁移扩展)的第三. ...