java随机生成数字和字母_使用java如何生成随机的字母数字字符串?
小编典典
算法
要生成随机字符串,请连接从可接受的符号集中随机抽取的字符,直到字符串达到所需的长度为止。
实例
这是一些相当简单且非常灵活的代码,用于生成随机标识符。阅读以下信息以获取重要的应用笔记。
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如何生成随机的字母数字字符串?相关推荐
- java逆向生成代码有哪些_利用mybatis逆向工程生成代码
在做项目过程中,当面对很多表时,手动编写Mapper.xml.Mapper.java和pojo无疑是要人命,还容易出错,导致对数据库操作时各种异常.这就陷入了写bug,改bug的旋涡. 针对这一痛点, ...
- java英文字母_用JAVA编一个程序输出全部的英文字母
展开全部 编码思62616964757a686964616fe59b9ee7ad9431333363376439路首先考虑到,英文字母的ASCII码是按字母顺序连续的整数,所以可以采用起始字母A递增的 ...
- java中随机数怎么定义类_浅析Java中的随机数类
Java中的随机数是否可以重复?Java中产生的随机数能否可以用来产生数据库主键?带着这个问题,我们做了一系列测试. 1.测试一: 使用不带参数的Random()构造函数 * @author Carl ...
- java语言中声明布尔型_【Java初探02】——Java语言基础
本篇博文就Java语言的一些基本元素进行一些记录和阐述,主要讲解一下Java语言的一些基本构成元素和Java的主类结构. Java语言基础的大致组成 java主类结构 基本的数据类型 变量与常量 运算 ...
- java方法参数类型不确定_一个Java方法能有多少个参数类型?这个好奇coder做了个实验...
选自 justinblank 机器之心编译 参与:李志伟.张倩 在 JVM 中,一个 Java 方法,最多能定义多少参数呢?这是一个很无聊的问题,即使能定义一万个,十万个,谁又会真的去这么做呢.但是作 ...
- java编写某计算器控制台程序_用java程序编写一个计算器
点击查看用java程序编写一个计算器具体信息 答:给你一个参考,希望不要被百度吞了当晚餐 import java.awt.BorderLayout; import java.awt.GridLayou ...
- java制作一个简单的画板_【Java】Thymeleaf一个简单示例
Thymeleaf简单介绍 Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎 Spring官方支持的服务的渲染模板中,并不包含jsp.而是Thymeleaf和Freemar ...
- java 必须try catch的异常_【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!...
@ 1.异常 1.1 异常概念 异常 :简单说就是不正常运行,最终导致JVM的非正常停止. 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象.Java处 ...
- java中数组的下标比较_【Java】 剑指offer(53-3) 数组中数值和下标相等的元素
本文参考自<剑指offer>一书,代码采用Java语言. 题目 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数找出数组中任意一个数值等于其下标的元素.例如,在数 ...
- java不同对象的集合拷贝_集合java对象
JAVA基础教程汇总 到这一篇博客为止,JAVA的基础部分已经介绍完了,这一篇为基础部分的汇总. JAVA介绍 JAVA概述 Java的特点 JDK/bin目录下的不同exe文件的用途 JAVA环境变 ...
最新文章
- 你是如何自学 Python 的?
- windows命令行设置环境变量
- 星巴克、苹果、谷歌、亚马逊等巨头,为何同时做这件事?
- PLSQL DEVELOPER 使用的一些技巧【转】
- Dockerfile中通过ENV指定动态参数在RUN时传递参数(部署后台jar包时指定端口为例)
- 一起玩树莓派3+使用Gitlab搭建专业Git服务
- 如何把关联性的告警智能添加到 Nagios 上?(2)
- 汇编语言:冒泡排序算法将10个数按从小到大顺序排列
- cdn与服务器的关系_掐指算算: 你的CDN多花了几百万?
- Oracle11新特性:分区功能增强-Oracle新增复合分区 (转载)
- PowerShell实战5: 批量增加AD组成员
- 冒泡排序(一分钟懂)
- 二分法求解方程的根java_【数值分析】利用二分法和牛顿公式求解方程的根
- AMD CPU 超频
- 51单片机实现生日快乐歌
- 斯密特正交化与QR分解
- FakeApp下载及教程
- 自学python---03_Spur计算工具开发
- 称球问题-找出球中的坏球
- FPS游戏初开发--逻辑分析总结
热门文章
- Arcgis小技巧【3】——计算图斑的投影面积和椭球面积
- nuxt+tsx项目 class报错
- 超级表格的高级使用者都在用视图做些什么?
- phalcon mysql_PHP-Phalcon框架中的数据库操作
- python 密码库_(01)Python密码库Cryptography探究学习---简介和入门
- 【Apache NIFI 翻译】2-Getting Started with Apache NiFi 入门
- amazon alexa_如何建立您的第一个Amazon Alexa技能
- 漫画 |《帝都程序猿十二时辰》
- 在深度反应离子蚀刻工具中调整蚀刻方向性
- 基于负熵(fastICA)的盲源分离