如何在Java中生成预定义字节的随机字符串?

时间:2014-10-13 03:05:30

标签: java string random byte

我需要编写一个可以在Java中生成x字节大小的随机字符串的函数吗?

例如

- 如何生成300字节或(+ -50字节也很好)的字符串,我将使用的编码为UTF-8

我知道如何在Java中生成随机字符串,但不知道如何获得预定义字节的随机字符串 -

public static String generateString(Random random, String characters, int length)
{
    char[] text = new char[length];
    for (int i = 0; i < length; i++)
    {
        text[i] = characters.charAt(random.nextInt(characters.length()));
    }
    return new String(text);
}

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,那就相当简单了。您可以使用StringBuilder随机附加从输入字母表中选择的字符。像,

public static String generateString(Random random, String characters,
        int length) {
    StringBuilder sb = new StringBuilder(length);
    for (int i = 0; i < length; i++) {
        sb.append(characters.charAt(random.nextInt(characters.length())));
    }
    return sb.toString();
}

如果您使用String characters来呼叫,例如

String abc = "abcdefghijklmnopqrstuvwxyz";
String characters = "0123456789" + abc + abc.toUpperCase() + "{}[]()";

我认为你会得到你想要的人类可读的输出。