如何随机获取这些数组值?

时间:2014-04-28 11:10:14

标签: java arrays string

我有以下字符串数组:

String arry[] = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
            "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
            "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h",
            "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t",
            "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5",
            "6", "7", "8", "9", "`", "~", "!", "@", "#", "$", "%", "^",
            "&", "*", "(", ")", "-", "_", "=", "+", ";", ":", "'", "|", "",
            "<", ",", ">", ".", "/", "?", };

在这个String数组中如何随机获取值?

例如:

AG.4fF
h9_wO4

到目前为止,我有以下代码:

for (String st : arry) {
    String randomValue = arry[new Random().nextInt(arry.length)];
    System.out.println(" Inside array  values :-->> " + randomValue);

}

对于此代码,它返回所有数组值,然后返回如何形成多个组合。

正如我之前提到的那样?

3 个答案:

答案 0 :(得分:4)

你的意思是从这组字符中生成随机字符串?您可以这样执行:

int len = ...; // length of resulting string
StringBuilder builder = new StringBuilder();
Random rand = new Random();
for (int i = 0; i < len; ++i) {
    String c = arry[rand.nextInt() % arry.length];
    builder.append(c);
}
String str = builder.toString();

答案 1 :(得分:1)

import java.util.Random;

...

Random random = new Random(); // Step 1 - creating random object
System.out.println(arry[random.nextInt(arry.length)]); // Step 2

在步骤2中,我们生成0到数组长度的随机数,而不是get element reside

Random.nextInt(int n)方法返回伪随机,在0(包括)和指定值(不包括)之间均匀分布的int值

答案 2 :(得分:1)

获取可以执行的字符串

static final String chars = 
               "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
               "abcdefghijklmnopqrstuvwxyz" +
               "0123456789`~!@#$%^&*()-_" +
               "=+;:'|\"<,>./?";

static final Random rand = new Random();
public static String randString(int length) {
     char[] gen = new char[length];
     for (int i = 0; i < length; i++) 
          gen[i] = chars.charAt(rand.nextInt(chars.length));
     return new String(gen);
}