`
joknm
  • 浏览: 62489 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

java 取随机字符串

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

import java.util.Random;

/**
 * org.jinsheng.util.RandomString.java
 * <p>
 * 描述:此类用于获取随机字符串
 * </p>
 * <p>
 * 时间:2009-9-16
 * </p>
 * 
 * @author jinsheng
 * @version 1.0
 */
public class RandomString
{
	private final String splitStr = " "; // 分割符

	// 取数字字符串 用 splitStr 分割
	private String getNumberString()
	{
		StringBuffer buf = new StringBuffer();
		for (int i = 0; i < 10; i++)
		{
			buf.append(String.valueOf(i));
			buf.append(splitStr);
		}
		return buf.toString();
	}

	// 取大写字母字符串 用 splitStr 分割
	private String getUppercase()
	{
		StringBuffer buf = new StringBuffer();
		for (int i = 0; i < 26; i++)
		{
			buf.append(String.valueOf((char) ('A' + i)));
			buf.append(splitStr);
		}
		return buf.toString();
	}

	// 取小写字母字符串 用 splitStr 分割
	private String getLowercase()
	{
		StringBuffer buf = new StringBuffer();
		for (int i = 0; i < 26; i++)
		{
			buf.append(String.valueOf((char) ('a' + i)));
			buf.append(splitStr);
		}
		return buf.toString();
	}

	// 取特殊字符串 用 splitStr 分割
	private String getSpecialString()
	{
		String str = "~@#$%^&*()_+|\\=-`";
		StringBuffer buf = new StringBuffer();
		for (int i = 0; i < str.length(); i++)
		{
			buf.append(str.substring(i, i + 1));
			buf.append(splitStr);
		}
		return buf.toString();
	}

	// 根据所取的字符串类型连接相应的字符串并返回
	private String getString(String type)
	{
		StringBuffer pstr = new StringBuffer();
		if (type.length() > 0)
		{
			if (type.indexOf('i') != -1)
				pstr.append(this.getNumberString());
			if (type.indexOf('l') != -1)
				pstr.append(this.getLowercase());
			if (type.indexOf('u') != -1)
				pstr.append(this.getUppercase());
			if (type.indexOf('s') != -1)
				pstr.append(this.getSpecialString());

		}
		return pstr.toString();
	}

	/**
	 * 取随机字符串
	 * 
	 * @param length
	 *            返回随机字符串的长度
	 * @param type
	 *            要取的字符串类型: 
	 *            i、取数字 
	 *            l、取小写字母 
	 *            u、取大写字母 
	 *            s、取特殊字符
	 * @return String 随机字符串
	 */
	public String getRandomString(int length, String type)
	{
		String allStr = this.getString(type);
		String[] arrStr = allStr.split(splitStr);
		StringBuffer pstr = new StringBuffer();
		if (length > 0)
		{
			for (int i = 0; i < length; i++)
			{
				pstr.append(arrStr[new Random().nextInt(arrStr.length)]);
			}
		}
		return pstr.toString();
	}

	// 测试
	public static void main(String[] args)
	{
		System.out.println("type=i:"
				+ new RandomString().getRandomString(10, "i"));
		System.out.println("type=il:"
				+ new RandomString().getRandomString(10, "il"));
		System.out.println("type=ilu:"
				+ new RandomString().getRandomString(10, "ilu"));
		System.out.println("type=ilus:"
				+ new RandomString().getRandomString(10, "ilus"));
		for (int i = 0; i < 100; i++)
			System.out.println("type=ilus:"
					+ new RandomString().getRandomString(10, "ilus"));
	}

}


最近无聊写了这么一个类,实现获取随机字符串的类,如果各位有什么高招请指教指教小弟,呵呵。
分享到:
评论

相关推荐

    生成指定长度的随机字符串

    Java也有类似的方法,可以使用`java.util.Random`类和`Character`类来生成随机字符串: ```java import java.util.Random; public class RandomStringGenerator { public static String generate(int length) { ...

    java源码数字字符串排序

    在Java编程中,数字字符串排序是一项常见的任务,特别是在处理大量数据时。本示例着重讨论如何对百万级的数字字符串进行高效排序。标题中的“java源码数字字符串排序”指的是利用Java语言实现的一种优化策略,可能...

    Java 随机取字符串的工具类

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

    随机生成8位字符串密码

    随机生成8位字符密码,包括1位特殊字符,1位数字,1位小写字母,1位大写字母,其余4位随机

    RandomJson:提供KotlinJava库以创建随机json字符串

    这意味着可以在不同的线程中随机字符串 该库为每个对create()调用创建一个字符串。 它不提供任何并发或流。 这完全取决于开发人员如何使用它。 Java互操作 该库可以在Java 10+中使用。 参见。 用法 配置 首先,我们...

    java_code.rar_java 加密解密_java_code.rar_加密解密_字符串 加密 解密_对 字符串 加密 解密

    本项目“java_code.rar”聚焦于Java实现的字符串加密解密技术,旨在提供一个实用的解决方案来保护敏感信息。 首先,我们需要理解加密和解密的基本概念。加密是将明文(可读信息)转化为密文(不可读信息)的过程,...

    java随机产生四位验证码(相邻码不重复)两种算法实现

    在循环中,我们生成随机索引,如果该字符已被使用,则跳过,否则将字符添加到结果数组`chr1`中,并标记为已使用。当`j&gt;=4`时,即四个字符都已找到,跳出循环并返回`chr1`。 ```java public static char[] checkcode...

    RandomUtils_随机数工具类_

    `RandomUtils`是一个非常实用的工具类,它提供了一系列的方法来生成各种类型的随机数,包括整数、浮点数以及随机字符串。在本文中,我们将详细探讨`RandomUtils`类中的功能和使用方法,尤其是生成随机字符串的相关...

    从n个数组中取出所有排列组合(Java实现)

    Java作为一种强大的编程语言,提供了丰富的工具和方法来解决此类问题。下面我们将深入探讨这个问题的解决方案、相关算法以及Java中的实现细节。 首先,我们需要理解什么是排列组合。排列是指从n个不同元素中取出m...

    DOM、SAX、DOM4J、JDOM、StAX生成XML并返回XML字符串形式

    下面将详细介绍这些解析器的工作原理以及它们在生成XML并返回XML字符串形式时的应用。 1. DOM (Document Object Model) DOM是一种基于树形结构的XML解析模型,它将整个XML文档加载到内存中,形成一个完整的文档对象...

    简单了解Java字符串(操作)

    本文将深入探讨Java中的字符串操作,包括字符串的遍历、类型转换、字符串分割以及取子串等核心概念。 首先,让我们来看看如何遍历一个Java字符串。有三种常见的方法: 1. 使用for循环,通过`str.length()`获取字符...

    利用时间生成8位不重复数

    3. 这样得到的8位十六进制字符串即为不重复的随机码。例如,如果当前时间戳为1368474471,转换为十六进制可能是"53e1b61b",若只需8位,可以取前8位"53e1b61"。 在Java中,可以使用`java.lang.Long.toHexString()`...

    java源码包---java 源码 大量 实例

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    返回Long型UUid

    接着,我们只取这个字符串的前16位,这样就得到了一个16位的16进制数字字符串。最后,我们使用`Long.parseLong()`方法将这个16进制字符串转换为Long类型,从而得到一个16位的纯数字Long型UUID。 这个工具类的使用...

    一个值得研究的小程序,当你输入字符,每次都能将不同的字符取出

    这个小程序的核心功能是读取字符并能够每次提取出不同的字符,这在编程中涉及到了字符串处理和随机访问的概念。在IT行业中,字符处理是基础且重要的技能,尤其在文本处理、数据分析以及用户交互等场景中。下面我们将...

    JAVA 生成随机数的3种方法

    例如,`nextInt(6)`会生成0到5之间的随机整数。 - `nextDouble()`方法则生成一个0.0到1.0之间的双精度浮点数,精度可达到1.0的二进制补码表示的下一位。 示例代码: ```java import java.util.Random; ...

    java源码包3

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    java源码包2

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    JAVA XML \ 定长报文 与domino转换及通讯

    例如,使用DOM解析XML,然后根据字段长度切割并填充定长字符串;Socket部分则创建ServerSocket监听客户端,接收到数据后解码为XML,反之亦然。 6. **安全与优化**:在实际的XML通讯中,要关注数据安全,比如防止XML...

Global site tag (gtag.js) - Google Analytics