/** * 功能描述 随机数工具类<br /> * @author FengXueYeGuiRen * 创建时间 2014-7-25<br /> */ public class RandomUtil { // 随机数生成器 private static java.util.Random random = new java.util.Random(); // 生成随机数的默认位数 private static final long BITS = 6; /** * 生成(获得)n位随机数串 * @param n 生成随机数串的位数 * @return 返回生成的 n为数字串 */ public static String getNBitRandomDigit(long n){ if(n < 1){ // 若 n小于 1,则设置为生成随机数的默认位数 n = BITS; } // 存储中间生成的数串 StringBuffer randomDigitStr = new StringBuffer(); // 生成的随机数 long randomDigit; if(n < 18){ // 生成 n位随机数(-0.5避免生成的前 n均为 9最终四舍五入时(可能)超出一位数字) randomDigit = Math.round((random.nextDouble() * Math.pow(10, n)) - 0.5); randomDigitStr.append(randomDigit); } else { // n超过 18,则通过生成多个 18位随机数连接成更长串 for(int i = 0; i < Math.floor(n / 18); ++i){ // 生成 18位随机数(long最长为 19位且非所有位均为 9,所以取 18位) randomDigit = Math.round((random.nextDouble() * Math.pow(10, 18)) - 0.5); randomDigitStr.append(randomDigit); } } // 生成的随机数串位数 int randomDigitStrLength = randomDigitStr.length(); // 生成的随机数串位不足但是也不达 18位时,循环随机插入随机生成的[0, 9]间任意一位数 if(randomDigitStrLength < n){ for(int i = 0; i < n - randomDigitStrLength; ++i){ // 生成可插入的下标位置(若位置为 randomDigitStr.length(),则是在末尾添加) int offset = random.nextInt(randomDigitStr.length() + 1); if(offset < randomDigitStr.length()){ // 在 offset位置(下标)插入随机生成的[0, 9]间一位数 randomDigitStr.insert(offset, random.nextInt(10)); } else { // 在数串末尾添加[0, 9]间一位数 randomDigitStr.append(random.nextInt(10)); } } } return randomDigitStr.toString(); } /* * 生成(获得)RandomUtil。BITS位随机数串 */ public static String getNBitRandomDigit(){ return getNBitRandomDigit(BITS); } public static void main(String[] args) { for(int i = 50; i<= 150; ++i){ System.out.println(getNBitRandomDigit(i)); } } }
相关推荐
根据给定的信息,我们可以深入探讨如何在编程环境中生成指定...通过以上分析和改进,我们不仅能够准确地生成所需的11位随机数字串,还确保了代码的高效性和适用性。这对于IT行业的开发人员来说是非常有价值的技能之一。
1. **生成随机数字**:可以通过修改ASCII码范围来生成随机数字。 2. **生成小写字母**:只需调整ASCII码范围至97到122之间。 3. **混合数字和字母**:可以结合生成数字和字母的方法,随机选择生成数字还是字母。 4. ...
Java随机字符串生成器,可用于生成随机密码,加密算法密约(AES,RSA等)等场景,支持可选字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置),即在选择的字符范围内去实现随机字符串...
Java生成随机字符串数组的实例详解是一种非常有用的编程任务,涉及到String、StringBuffer、List、泛型、Collections.sort()、foreach、Random等相关知识点。通过本实例详解,读者可以学到生成随机字符串数组的步骤...
给定的部分代码示例展示了如何使用`java.security.SecureRandom`类生成随机数字。下面是对这部分代码的详细解析: ```java public class RandomNum { // ...省略其他成员变量定义... public final void ...
首先,我们需要创建一个MathUtils工具类,用于生成随机数字字符串: ```java public class MathUtils { private static final String DEFAULT_DIGITS = "0"; private static final String FIRST_DEFAULT_DIGITS =...
标题提到的"Java生成含字母和数字的6位随机字符串",就是指通过编程方式创建一个长度为6的字符串,其中包含大小写字母和数字的组合。下面我们将深入探讨如何实现这个功能。 首先,我们需要了解Java中生成随机数的...
本篇文章将详细解析如何通过Java语言实现一个功能,即随机生成包含字母和数字的10位随机字符串。 #### 核心需求分析 根据题目描述,我们需要实现的功能是生成一个由字母和数字组成的10位随机字符串。这里的字母只...
随机生成8位字符密码,包括1位特殊字符,1位数字,1位小写字母,1位大写字母,其余4位随机
通过设置范围和种子,可以生成指定长度的数字串,如8位数。 2. **去除重复**:为了确保生成的随机数不重复,可以使用HashSet或数据库来存储已经生成过的随机数,每次生成新数时,都会先检查该数是否已存在,如果不...
下面我们将详细介绍如何利用Java来实现一个能够随机生成指定长度、包含字母和数字的用户名的方法。 #### 核心知识点 1. **Random 类的使用**:`java.util.Random` 是Java中的一个类,用于生成伪随机数。 2. **字符...
总结来说,这个示例展示了如何在Java中利用`Random`类生成随机字符串,以及如何根据需求自定义字符串的内容(大小写字母、数字等)。这样的功能在密码生成、数据模拟和其他需要随机性的情境中非常实用。
"Java开发技术调用Random函数,随机生成32位不重复的字符" 在Java开发技术中,生成随机数是非常常见的需求。例如,在注册用户账户时,需要生成一个随机的密码。在游戏开发中,需要生成随机数来决定游戏的结果。在...
在这个问题中,我们关注的是如何生成四位字符且无重复的验证码,以及如何进一步确保相邻字符不重复的实现方法。 1. 生成四位字符、整数组成的验证码(无重复码验证) 首先,我们需要一个包含所有可能字符的数组,...
生产不重复19位随机数,测试1000000数据没重复
验证码是网络应用中常见的一种安全机制,用于防止自动...总的来说,Java生成随机验证码的过程涵盖了随机数生成、字符串处理、图像处理等多个编程领域。通过合理的设计和实现,可以创建出既安全又用户友好的验证码系统。
Java生成随机字符串的两种方法 Java生成随机字符串是 Java 中一个常见的应用场景,例如在注册用户时生成验证码、生成订单号、生成唯一标识符等。今天我们将为大家详细介绍 Java 生成随机字符串的两种方法。 方法一...
生成的8位十六进制字符串在大多数情况下已经足够独特,但考虑到时间戳的精度,如果系统在同一秒内需要生成多个不重复的8位数字,可能需要结合其他策略,如添加进程ID、随机数或者序列号,以确保在极短时间内生成的ID...
### Java生成随机密码知识点解析 #### 一、概述 在软件开发中,为了增强系统的安全性,经常需要生成随机密码或验证码。Java作为一种广泛使用的编程语言,提供了多种方式来实现这一功能。本文将详细介绍如何利用...
### 使用Java生成随机数字和验证码 #### 1. 导入必要包 在文件的部分内容中,可以看到以下导入语句: ```java import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; ...