JAVA如何生成随机不重复字符串

问题详情

在工作中碰到了这个场景,要生产一系列不重复的字符串放到一个数组中去,其中字符串由a-z,A-Z,0-9随机组成,而且不能出现重复字符串。如提供数组长度length,字符串个数size

问题分析

从问题的要求来看,可以分部实现:

1、实现随机字符的生成从而实现字符串的生成。

由于字符串是由字符组成,所以实现生成随机的字符是关键,那样多个随机字符就可以得到字符串。随机字符生成可以由a-z,A-Z,0-9组成的字符串

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

中随机抽取一个字符来实现,那么选择length个就可以选出一个随机字符串了。

2、实现字符串与字符串之间的不重复性。

我们说当遇到不重复这种问题时会想到什么呢?没错了,就是使用集合保存,当我们用一个集合保存所生成的集合时候就可以做到不存在重复的问题了。当然了这里只是一次生成的不存在重复的字符串,如果说要生成全局唯一字符串,那么可能要加上一些信息从而做到全局唯一,1、前面加时间戳,2、本机mac地址、ip信息等等,其实要看场景设计有没有需要,这就要深一步讨论。

代码实现

这里实现的是一个函数输入数组size和字符串长度length,返回一个包含size个每个长length的随机字符串数组。

   /**
     * 题目:让你输入大小为size个每个长度为length的不重复数组,一个含有字母和数字的
     * 思路:使用随机数选择a-z,A-Z,0-9的数组中的字符组成字符串,使用set保存,就不会有不重复的字符串了
     *
     * @param length 字符串长度
     * @param size 字符数组个数
     * @return 一个字符串数组
     */
    public static String[] <
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值