小编典典

算法

要生成随机字符串,请连接从可接受的符号集中随机抽取的字符,直到字符串达到所需的长度为止。

实例

这是一些相当简单且非常灵活的代码,用于生成随机标识符。阅读以下信息以获取重要的应用笔记。

public class RandomString {

/**

* Generate a random string.

*/

public String nextString() {

for (int idx = 0; idx < buf.length; ++idx)

buf[idx] = symbols[random.nextInt(symbols.length)];

return new String(buf);

}

public static final String upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

public static final String lower = upper.toLowerCase(Locale.ROOT);

public static final String digits = "0123456789";

public static final String alphanum = upper + lower + digits;

private final Random random;

private final char[] symbols;

private final char[] buf;

public RandomString(int length, Random random, String symbols) {

if (length < 1) throw new IllegalArgumentException();

if (symbols.length() < 2) throw new IllegalArgumentException();

this.random = Objects.requireNonNull(random);

this.symbols = symbols.toCharArray();

this.buf = new char[length];

}

/**

* Create an alphanumeric string generator.

*/

public RandomString(int length, Random random) {

this(length, random, alphanum);

}

/**

* Create an alphanumeric strings from a secure generator.

*/

public RandomString(int length) {

this(length, new SecureRandom());

}

/**

* Create session identifiers.

*/

public RandomString() {

this(21);

}

}

用法示例

为8个字符的标识符创建不安全的生成器:

RandomString gen = new RandomString(8, ThreadLocalRandom.current());

为会话标识符创建一个安全的生成器:

RandomString session = new RandomString();

创建具有易于阅读的代码的生成器以进行打印。字符串比完整的字母数字字符串长,以补偿使用较少的符号:

String easy = RandomString.digits + "ACEFGHJKLMNPQRUVWXYabcdefhijkprstuvwx";

RandomString tickets = new RandomString(23, new SecureRandom(), easy);

2020-01-10

java随机生成数字和字母_使用java如何生成随机的字母数字字符串?相关推荐

  1. java逆向生成代码有哪些_利用mybatis逆向工程生成代码

    在做项目过程中,当面对很多表时,手动编写Mapper.xml.Mapper.java和pojo无疑是要人命,还容易出错,导致对数据库操作时各种异常.这就陷入了写bug,改bug的旋涡. 针对这一痛点, ...

  2. java英文字母_用JAVA编一个程序输出全部的英文字母

    展开全部 编码思62616964757a686964616fe59b9ee7ad9431333363376439路首先考虑到,英文字母的ASCII码是按字母顺序连续的整数,所以可以采用起始字母A递增的 ...

  3. java中随机数怎么定义类_浅析Java中的随机数类

    Java中的随机数是否可以重复?Java中产生的随机数能否可以用来产生数据库主键?带着这个问题,我们做了一系列测试. 1.测试一: 使用不带参数的Random()构造函数 * @author Carl ...

  4. java语言中声明布尔型_【Java初探02】——Java语言基础

    本篇博文就Java语言的一些基本元素进行一些记录和阐述,主要讲解一下Java语言的一些基本构成元素和Java的主类结构. Java语言基础的大致组成 java主类结构 基本的数据类型 变量与常量 运算 ...

  5. java方法参数类型不确定_一个Java方法能有多少个参数类型?这个好奇coder做了个实验...

    选自 justinblank 机器之心编译 参与:李志伟.张倩 在 JVM 中,一个 Java 方法,最多能定义多少参数呢?这是一个很无聊的问题,即使能定义一万个,十万个,谁又会真的去这么做呢.但是作 ...

  6. java编写某计算器控制台程序_用java程序编写一个计算器

    点击查看用java程序编写一个计算器具体信息 答:给你一个参考,希望不要被百度吞了当晚餐 import java.awt.BorderLayout; import java.awt.GridLayou ...

  7. java制作一个简单的画板_【Java】Thymeleaf一个简单示例

    Thymeleaf简单介绍 Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎 Spring官方支持的服务的渲染模板中,并不包含jsp.而是Thymeleaf和Freemar ...

  8. java 必须try catch的异常_【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!...

    @ 1.异常 1.1 异常概念 异常 :简单说就是不正常运行,最终导致JVM的非正常停止. 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象.Java处 ...

  9. java中数组的下标比较_【Java】 剑指offer(53-3) 数组中数值和下标相等的元素

    本文参考自<剑指offer>一书,代码采用Java语言. 题目 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数找出数组中任意一个数值等于其下标的元素.例如,在数 ...

  10. java不同对象的集合拷贝_集合java对象

    JAVA基础教程汇总 到这一篇博客为止,JAVA的基础部分已经介绍完了,这一篇为基础部分的汇总. JAVA介绍 JAVA概述 Java的特点 JDK/bin目录下的不同exe文件的用途 JAVA环境变 ...

最新文章

  1. 你是如何自学 Python 的?
  2. windows命令行设置环境变量
  3. 星巴克、苹果、谷歌、亚马逊等巨头,为何同时做这件事?
  4. PLSQL DEVELOPER 使用的一些技巧【转】
  5. Dockerfile中通过ENV指定动态参数在RUN时传递参数(部署后台jar包时指定端口为例)
  6. 一起玩树莓派3+使用Gitlab搭建专业Git服务
  7. 如何把关联性的告警智能添加到 Nagios 上?(2)
  8. 汇编语言:冒泡排序算法将10个数按从小到大顺序排列
  9. cdn与服务器的关系_掐指算算: 你的CDN多花了几百万?
  10. Oracle11新特性:分区功能增强-Oracle新增复合分区 (转载)
  11. PowerShell实战5: 批量增加AD组成员
  12. 冒泡排序(一分钟懂)
  13. 二分法求解方程的根java_【数值分析】利用二分法和牛顿公式求解方程的根
  14. AMD CPU 超频
  15. 51单片机实现生日快乐歌
  16. 斯密特正交化与QR分解
  17. FakeApp下载及教程
  18. 自学python---03_Spur计算工具开发
  19. 称球问题-找出球中的坏球
  20. FPS游戏初开发--逻辑分析总结

热门文章

  1. Arcgis小技巧【3】——计算图斑的投影面积和椭球面积
  2. nuxt+tsx项目 class报错
  3. 超级表格的高级使用者都在用视图做些什么?
  4. phalcon mysql_PHP-Phalcon框架中的数据库操作
  5. python 密码库_(01)Python密码库Cryptography探究学习---简介和入门
  6. 【Apache NIFI 翻译】2-Getting Started with Apache NiFi 入门
  7. amazon alexa_如何建立您的第一个Amazon Alexa技能
  8. 漫画 |《帝都程序猿十二时辰》
  9. 在深度反应离子蚀刻工具中调整蚀刻方向性
  10. 基于负熵(fastICA)的盲源分离