【问题标题】:Generate random String with fixed size [duplicate]生成具有固定大小的随机字符串[重复]
【发布时间】:2019-02-07 16:32:41
【问题描述】:

有没有办法使用此代码生成随机字符串,但符号大小为 42?

public static final String RANDOM_STRING = UUID.randomUUID().toString();

【问题讨论】:

    标签: java


    【解决方案1】:

    不,您不能创建超过 36 个字符,因为 UUID 的长度为 128 位。更多信息可以在这里找到。

    java.util.UUID.randomUUID().toString() length

    如果需要,必须实现自己的功能来生成具有6 characters 的随机字符串。为此,您可以使用 Apache Commons Lang 包。然后将其与UUID 字符串连接起来。

    【讨论】:

      【解决方案2】:

      为了获得比通常生成的 36 个字符长度更长的任何字符的 UUID 的真正随机性,您可以从第二个生成的 UUID 中提取一段(无论您想要什么长度)。这可以在同一行代码中完成:

      String RANDOM_STRING = UUID.randomUUID().toString() + "-" + 
                      UUID.randomUUID().toString().substring(0, 5);
      
      System.out.println("The UUID String is: " + RANDOM_STRING + 
              " and it is " + RANDOM_STRING.length() + " characters long.");
      

      请记住……它不是真正的 UUID。

      示例输出:

      The UUID String is: c8e1aceb-ee63-49f5-bd95-e6f3eebced20-d5c39 and it is 42 characters long.
      

      【讨论】:

        猜你喜欢
        • 2019-01-05
        • 2015-09-13
        • 1970-01-01
        • 1970-01-01
        • 2010-12-07
        • 1970-01-01
        • 1970-01-01
        • 2020-02-19
        相关资源
        最近更新 更多