java随机字符串

来源:互联网 发布:做微商拍小视频软件 编辑:程序博客网 时间:2024/06/11 15:40

好东西

import org.apache.commons.lang.RandomStringUtils;public class RandomString {    public static void main(String[] args) {    System.out.println(RandomStringUtils.random(5, "abcdefg"));    System.out.println(RandomStringUtils.random(5, "hijklmn"));    System.out.println(RandomStringUtils.random(5, "我你他她它"));    System.out.println(RandomStringUtils.random(5, "一壹I 、"));    System.out.println(RandomStringUtils.random(5, "¨〃々—~"));    System.out.println(RandomStringUtils.random(5, "0123456789"));}}
打印结果:
cbgeemnknh她我它他它I 、 壹々~~——69019
随机字符串就用这个,非常给力!

关于我的故事

前段时间项目中提出一个编码用5位随机字母 + 5位随机数字产生编码的需求,并且要求每个编码只能被使用一次,这种组合的总数是5位的26进制的字母组合加5位的10进制数字组合,结果总数是26的5次方再乘以10的5次方,组合总数1188137600000,是1万亿还多,当我们每次取编码的时候再去和已有编码去比较重复肯定是不可取的,所以我就想生成这1万亿的编码,然后每次随机使用一个然后立即清除,这样可以保证不重复使用,然后我开始了编写程序来生成这一万亿的编码,单线程,好慢,开10个线程,还是很慢,然后网上搜索了win7,java能开启最大线程数,就按照这个数字来,开启了最大线程数来生成,还是很慢,不管了让他跑着吧,明天过来看就行了,我不着急要这些编码的。

第二天,见证奇迹的时刻,可以完成老板给的这个编码需求了,兴致勃勃来到自己电脑前,程序已经停了,不错,跑完了吧这是。天呐,报错了,一晚上白跑了,查看报错,是硬盘满了,天真的以为1万亿个10位编码很简单,没想到500G的硬盘被填满了,只能放弃这种想法,就算换个大硬盘,这也不是可行方案,放弃。。。





原创粉丝点击