哈哈哈123457
2017-07-13 04:57
采纳率: 100%
浏览 19.8k
已采纳

java 生成八位 永远不重复的字符串

java 生成八位 永远不重复的字符串。。。。。。。。。。。。。。。。。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • 一点寒芒先至 2017-07-13 05:41
    已采纳
    public static void main(String[] args) {
            String a=RandomStringUtils.random(8, "abcdefghijklmnopqrstuvwxyz1234567890");
            System.out.println(a);
        }
    
    

    一般来说不会重复,重复的概率比你中500万还低

    2 4 打赏 评论
  • Z_replication 2020-11-24 20:59

    UUID如果你随机的长度是32位,截取前面8位方法最好不要这样,最好是使用random(位数,‘字符’);我试过用uuid随机32位置,然后取8位,比randow 出现的概率大多了

     

    1 打赏 评论
  • cheng_f 2017-07-13 05:11

    1、用一个字符数组保存之前生成的字符串。
    2、用rand生成一组字符串,判断是否和之前的字符串相同,相同则重新生成,直到生成不重复的字符串。

    这种方法虽然在数据量大的情况下效率低,但是也是一种方法。

    打赏 评论
  • lzl_Avery 2017-07-13 05:40

    http://blog.csdn.net/lzl_Avery/article/details/73176078 看我博客这篇 只需要把初始化数组的地方 改成char数组 把你要用来生成的初始自符串转为char数组给它就可以
    原理就是那样一个原理

    打赏 评论
  • 转角人生 2017-07-13 06:45
    打赏 评论
  • qq_37739083 2017-07-13 07:39

    看看并发量怎么样,并发量小的话直接用时间戳。

    打赏 评论
  • hongyu83916 2017-07-13 08:20

    换个思路,随机生成一个字符,然后丢到Set中,判断Set 的size()等于8,取出来链接成字符串。

    打赏 评论
  • 高冷的自卑患者 2017-07-13 05:52

    可以用UUID生产一个字符串,然后再截取前8位,重复的概率也是相当低的
    String str = UUID.randomUUID().toString().replace("-", "").substring(0, 8);

    1 打赏 评论

相关推荐 更多相似问题