`
longforfreedom
  • 浏览: 198787 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

一个扩展一下随机数工具类

    博客分类:
  • JAVA
阅读更多
package org.migle.util;

/**
 * 随机数工具类,扩展自{@link java.util.Random}提供了随机字符串生成功能
 * 
 * <pre>
 * 
 * Random r = new Random();
 * //生成一个长度为10,由a-z,A-Z随机组成的字符串
 * String s1 = r.nextString(10);
 * 
 * //生成一个长度为10的,由备选数组中字符随机组成的字符串
 * String s2 = r.nextString(new char[] { 'a', 'b', 'c', '1', '汉', '字' }, 10);
 * 
 * </pre>
 * 
 * @see java.util.Random
 * @author migle longforfreedom@gmail.com
 * @version 1.0 2010-5-9
 * 
 */
public class Random extends java.util.Random {
	private static final long serialVersionUID = -7057641784969086058L;

	public Random() {
		super();
	}

	public Random(long seed) {
		super(seed);
	}

	/**
	 * 
	 * @param length
	 *            随机字符串长度
	 * @return 由a-z,A-Z组成的长度为length的随机字符串
	 */
	public String nextString(int length) {
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < length; i++) {
			switch (nextInt(2)) {
			case 0:
				sb.append((char) ('A' + nextInt(26)));
				break;
			case 1:
				sb.append((char) ('a' + nextInt(26)));
				break;
			default:
				System.out.println("ERROR");
				break;
			}
		}
		return sb.toString();
	}

	/**
	 * 生成一个 由备选字符数组中字符组成的长度为length的数字符串; 此方法并能保证备选字符肯定出现 <br/>
	 * 
	 * <pre>
	 *  eg: 
	 * 	   Random r = new Random();
	 *     String s = r.nextString(new char[]{'a','b','c','1','汉','字'},10);
	 * </pre>
	 * 
	 * @param chars
	 *            备选字符
	 * @param length
	 *            随机字符串长度
	 * @return 随机字符串
	 */
	public String nextString(char[] chars, int length) {
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < length; i++) {
			sb.append(chars[nextInt(chars.length)]);
		}
		return sb.toString();
	}

	public static void main(String[] args) {

		Random r = new Random();
		for (int i = 0; i < 10; i++) {
			System.out.println(r.nextString(new char[] { 'a', 'b', 'c', '1',
					'汉', '字' }, 10));
		}
	}
}
分享到:
评论

相关推荐

    随机数工具类

    本篇文章将详细讲解一个名为"RandomUtil"的随机数工具类,该工具类通常用于方便地生成各种类型的随机数,包括整数、浮点数以及指定范围内的随机数。我们将探讨其核心功能、实现原理以及如何在实际项目中使用。 首先...

    Winform-随机数生成器

    总的来说,"Winform-随机数生成器"是一个实用的小工具,它利用C#的`Random`类和Winform的交互能力,实现了对随机数生成的自定义控制,满足了不同用户在不同场景下的需求。无论是测试数据的生成,还是作为其他应用的...

    针对.net的Random随机数生成器的扩展。

    对于扩展`Random`类以生成不重复随机数,我们可以使用一个集合来跟踪已生成的随机数,确保不会有重复。这里可能需要一个自定义方法,如`GetUniqueRandomNumbers(int count)`,它接受一个整数参数`count`,表示需要...

    工具类-随机生成一个姓名工具类,自用留存

    总结来说,这个"工具类-随机生成一个姓名工具类"是一个实用的Java代码片段,它利用了Java的随机数生成功能和字符串操作,为开发人员提供了一个快速生成随机姓名的手段。这个工具类的设计遵循了Java工具类的一般原则...

    java开发,30个常用工具类总结,全部来自项目实践中用到的工具类

    1. **DateUtils**: `java.util.Date` 和 `java.time` 包含日期和时间的操作,但DateUtils通常是Apache Commons Lang库中的一个工具类,提供更方便的日期处理方法,如格式化、解析、比较和日期的加减操作。...

    java常用工具类汇总

    "Java常用工具类汇总"是一个集合了各种实用工具类的资源,旨在方便开发者在处理常见任务时提高效率。这个工具类库覆盖了字符串、文件、数组以及数学等多个方面,同时也提供了相应的API文档,使得开发者能够更好地...

    工具类项目,开发经常用到的一些工具类

    以上只是一部分可能存在于CommonsUtils中的功能,实际项目中,工具类的覆盖范围可以根据具体需求进一步扩展。开发者可以根据自己项目的特性,选择性地引入和使用这些工具类,提升代码的可读性和维护性。

    28个java常用的工具类

    标题提到的“28个Java常用的工具类”可能是一个集合,包含了各种实用功能的类。以下是一些常见的Java工具类及其功能的详细说明: 1. **String类**:Java内置的String类提供了大量操作字符串的方法,如concat、...

    随机数生成器(源码)

    在编程领域,随机数生成器是一种至关重要的工具,特别是在模拟、加密、游戏开发以及各种统计计算中。VB(Visual Basic)作为经典的编程语言,虽然内置了`Rnd`函数用于生成随机数,但在某些情况下,它可能无法满足...

    订单号生成工具类

    订单号生成工具类是软件开发中的一个重要组成部分,特别是在电商、金融等业务中,订单号的唯一性和可追溯性是至关重要的。一个良好的订单号生成机制能够确保每笔交易的唯一标识,便于数据跟踪和管理。下面我们将深入...

    不重复随机数生产器类 c#代码

    总的来说,这个自编的不重复随机数生成器类是C#中处理随机数生成问题的一个实用工具,它通过优化和策略选择提高了在各种场景下的性能。理解并应用这些技术可以帮助开发者在处理类似问题时提高代码的效率和可维护性。

    单线程 多线程 线程池 计算随机数的一价和

    为了确保计算的正确性,我们需要确保线程间的通信是安全的,例如使用`java.util.concurrent`包下的`ExecutorService`和`Future`接口,或者其他并发工具类。 在实际编程中,Java、Python等语言提供了丰富的多线程和...

    这是一个工具类

    "70工具类"这个压缩包很可能包含了一系列Java编程语言中的工具类,用于处理各种任务。这些工具类可能涵盖了字符串处理、日期时间操作、数学计算、网络通信等多个领域。 首先,我们来了解一下Java中的工具类概念。在...

    java常用开发工具类大全

    - `java.util`: 这个包中包含了大量工具类,如`ArrayList`, `HashMap`, `LinkedList`等集合框架类,以及`Date`, `Calendar`时间处理类,`Random`随机数生成器等。 - `java.text`: 提供了`SimpleDateFormat`进行...

    开发常用工具类

    在Java开发过程中,工具类(Utility Class)是程序员经常使用的代码模块,它们提供了一系列静态方法,用于执行特定的辅助任务,提升代码复用性。"开发常用工具类"这个主题涵盖了各种不同领域的实用功能,例如字符串...

    Java常用工具类

    3. **Apache Commons Lang**:Apache软件基金会的一个开源项目,提供了大量扩展Java语言特性的工具类,如字符串处理、数组操作、反射、枚举操作等。 - `StringUtils`:提供了丰富的字符串操作方法,如空白字符处理...

    java 随机数算法,用来实现随机数功能

    首先,Java提供了一个内置的`java.util.Random`类,它是生成随机数的核心工具。要创建一个`Random`对象,你可以直接调用其构造函数: ```java Random random = new Random(); ``` `Random`类提供了多种方法来生成...

    个人(wangjun)工具类实例

    这通常会是一个包含多个Java类的文件夹结构,每个类对应一个工具类,或者是一个包含所有工具方法的大而全的单个Java类。通过阅读源码,我们可以学习到wangjun是如何组织和实现这些工具方法的,也可以将其融入到自己...

    31个java工具类大汇总

    `StringUtils`是Apache Commons Lang库中的一个核心工具类,专门用于处理字符串。它提供了大量的静态方法,例如检查字符串是否为空、去除两端空白字符、分割字符串、替换子串、比较字符串等,极大地增强了Java标准...

    AES256加密工具类,及其所必须的jar包

    AES256加密工具类是信息安全领域中一个重要的实用组件,它主要负责对数据进行加密保护,确保数据在传输或存储过程中的安全。AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法,提供了强大的安全性...

Global site tag (gtag.js) - Google Analytics