`

生成指定位数的随机字符串和数字

 
阅读更多

import java.util.Random;

public class RandomUtils {
	private static Random randGen = null;
	private static char[] numbersAndLetters = null;
	private static Object initLock = new Object();

	/**
	 * int是字符串的长度,即可产生指定长度的随机字符串。
	 * 
	 * @param length
	 * @return
	 */
	public static final String randomString(int length) {

		if (length < 1) {
			return null;
		}
		if (randGen == null) {
			synchronized (initLock) {
				if (randGen == null) {
					randGen = new Random();
					numbersAndLetters = ("~!@#$%^&*()_+.,/?,.<>';0123456789abcdefghijklmnopqrstuvwxyz没有啊啊啊啊啊啊啊啊啊啊啊啊").toCharArray();
					//numbersAndLetters = ("0123456789abcdefghijklmnopqrstuvwxyz").toCharArray();
				}
			}
		}
		char[] randBuffer = new char[length];
		for (int i = 0; i < randBuffer.length; i++) {
			randBuffer[i] = numbersAndLetters[randGen.nextInt(36)];
		}
		return new String(randBuffer);
	}
	/**
	 * 产生11位随机数,以1开头,类似手机号
	 * @return
	 */
	public static String getRandomPhone(){
		StringBuffer sb=new StringBuffer();
		for (int i = 0; i < 10; i++) {
			sb.append((int) (10 * (Math.random())));
		}
		return "1"+sb.toString();
	}
	/**
	 * 产生指定位数的数字
	 * @param length
	 * @return
	 */
	public static final String randomNum(int pwd_len) {
		//35是因为数组是从0开始的,26个字母+10个数字
	    final int maxNum = 36;
	    int i; //生成的随机数
	    int count = 0; //生成的密码的长度
	    char[] str = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
	    StringBuffer pwd = new StringBuffer("");
	    Random r = new Random();
	    while(count < pwd_len){
	     //生成随机数,取绝对值,防止生成负数,
	   
	     i = Math.abs(r.nextInt(maxNum)); //生成的数最大为36-1
	   
	     if (i >= 0 && i < str.length) {
	      pwd.append(str[i]);
	      count ++;
	     }
	    }
	    return pwd.toString();
	}
	public static void main(String[] args) {
		System.out.println(randomNum(5));
	}
}
 
分享到:
评论

相关推荐

    PHP生成指定数量的不重复随机字符串

    可以生成指定数量的不重复随机字符串,支持纯数字、字母和数字组合、字母数字加特殊字符

    易语言取随机字符源码.7z

    在易语言中,"取随机字符"功能是用于生成指定长度的随机字符串,常用于密码生成、数据填充或者加密等领域。这个压缩包文件“易语言取随机字符源码.7z”包含的就是关于这一功能的源代码,可以帮助我们理解易语言如何...

    javascript自动生成包含数字与字符的随机字符串.docx

    本篇文章将详细介绍如何利用JavaScript中的`Math.random()`和`Math.floor()`函数来生成包含数字和字符的随机字符串。 #### 一、Math.random() 函数 `Math.random()`函数用于返回一个0(包括)到1(不包括)之间的...

    C#生成不重复字母数字组合的随机数

    描述中提到的“保存成TXT”,意味着生成的这些随机字符串可能被写入到一个文本文件中。在C#中,我们可以使用`StreamWriter`类来实现这个功能。例如,修改`Main`函数如下: ```csharp static void Main(string[] ...

    随机生成11位数字

    这个字符串包含数字和字母,但根据题目描述,我们需要的是一个纯数字的随机字符串。 #### 2. 修改现有代码 为了满足生成纯数字的需求,我们需要对现有代码进行适当的修改。首先,我们需要更改`alphaNum`变量中存储...

    按要求生成指定位数的编号【Delphi源码下载】..rar

    在这个"按要求生成指定位数的编号"项目中,开发者可能已经实现了生成特定长度数字字符串的功能,这可能是通过循环、条件语句以及字符串操作来完成的。例如,如果需要生成一个5位数的编号,源码可能会包含以下步骤: ...

    Linux Shell 生成随机数和随机字符串的方法示例

    上面的命令将生成一个由字母和数字组成的10个字符的随机字符串。`tr`命令用于删除所有非字母数字字符,`从设备文件`/dev/urandom`中读取随机数据,`-dc`选项保留匹配的字符,`head -c 10`则限制输出的长度为10个字符...

    javascript自动生成包含数字与字符的随机字符串

    本篇文章将重点介绍如何利用JavaScript的Math.random()函数和Math.floor()函数来生成既包含数字又包含字符的随机字符串。 首先,我们需要了解Math.random()和Math.floor()这两个函数的基本概念和用法: 1. Math....

    C#按要求生成指定位数的编码

    总结来说,C#提供多种方式来生成指定位数的编码,包括整数转换、循环、随机数和进制转换等。这些技术在软件开发的各个领域都有其应用价值,从简单的数据表示到复杂的业务逻辑,都是开发者必备的技能。

    sql生成随机码--自定义大写、小写、数字、特定字符个数

    sql生成随机码--自定义大写、小写、数字、特定字符个数

    java生成随机数(字符串)示例分享

    总结来说,这个示例展示了如何在Java中利用`Random`类生成随机字符串,以及如何根据需求自定义字符串的内容(大小写字母、数字等)。这样的功能在密码生成、数据模拟和其他需要随机性的情境中非常实用。

    Python生成8位随机字符串的方法分析

    这两种方法都能有效地生成8位随机字符串,但第二种方法生成的字符串更有可能包含各种类型的字符(数字、大小写字母),因为它是从更大的字符集里选择,并且保证每个字符只出现一次。 ### 应用场景 生成随机字符串...

    【JavaScript源代码】Java 生成随机字符的示例代码.docx

    3. 生成指定位数的随机数字字符串 ```java public static String getRandom(int n) { Random r = new Random(); Long b = Math.abs(r.nextLong()); return b.toString().substring(0, n); } ``` 这里使用`Random`...

    golang生成指定位数的随机数的方法

    在Golang中生成指定位数的随机数是一项常见的任务,这通常涉及到使用`math/rand`和`crypto/rand`这两个包。这两个包提供了不同的功能,以满足不同场景下的随机数需求。 首先,我们要理解随机数的概念。随机数是看似...

    javascript创建含数字字母的随机字符串方法总结

    如果想创建一个含有数字、字母(大小写)或者符号的字符串,比如从[a-zA-Z0-9]集合中中创建一个随机的字符串,长度为5.有没有什么比较好的代码呢?本文提供了几种方法,包括自动改变字符集合。一起来学习下。

    动态库_自动产生六位随机码

    可以自动产生六位十六进制码,附使用方法 使用函数B6CRT()

    C# 批量生成随机密码必须包含数字和字母并用加密算法加密

    总结来说,本文描述了一个使用C#语言,通过字符串操作、随机数生成及MD5加密算法来批量生成包含数字和字母的随机密码的方法,并将这些密码存储到文件中。这种方法在需要大量随机且安全性要求不特别高的场景下是十分...

    Java 随机取字符串的工具类

    【Java 随机取字符串的工具类】和【描述】中提到的焦点在于Java如何生成随机字符串,以及Java中的`Random`类是如何工作的。在Java编程中,生成随机数和随机字符串对于各种应用场景至关重要,如模拟随机选择、数据...

    PHP自带函数给数字或字符串自动补齐位数

    总结来说,`sprintf()`和`number_format()`是PHP中处理数字和字符串格式化的强大工具。它们可以帮助开发者创建出符合特定格式的输出,无论是用于展示还是数据处理。了解并熟练使用这两个函数,能够使代码更加灵活,...

    C#生成2位或N位不重复字母数字组合

    本篇文章将详细讲解如何使用C#来生成指定长度的不重复字母数字组合,包括两位及任意N位的情况。 首先,我们需要定义可用的字符集。通常,我们会选择大小写字母(A-Z, a-z)和数字(0-9),这样可以提供更多的组合...

Global site tag (gtag.js) - Google Analytics