如何从字符串数组中获取随机字符串?
问题描述:
我得到了一个String[]
我想从中获得一个随机值。我试图用另一种方法来说明这个逻辑。这是我的代码到目前为止。如何从字符串数组中获取随机字符串?
public static void main(String[]args) {
String [] S = {"aaa", "bbb", "ccc", "ddd", "eee","ggg", "hhh", "iii", "kkk"};
}
public String get() {
int i;
for(i = 0; i <= 4; i++) {
}
}
我需要的随机字符串数组出与S
的方法get()
的,但我真的不知道该怎么做。
答
首先,您必须将S数组移到实例变量或静态变量上,因为它当前位于主方法的本地,并且无法从您的get
方法访问。
然后你就可以得到一个随机字符串这样:
private Random rnd = new Random();
public String get()
{
return S[rnd.nextInt(S.length)];
}
答
您可以使用java.util.Random
生成随机的东西。但是,请记住,它不安全,不是真正的随机。
您可以从阵列S
获得随机char
S:
String randomString = "";
Random rand = new Random();
for(int i=0;i<=4;i++)
{
randomString += S[rand.nextInt(S.length())].charAt(0);
}
System.out.println(randomString);
答
你不需要在获取循环()方法,你需要生成原始数组的长度下方的随机数,并说返回小号[RANDOM_NUMBER]
EDIT
让get方法需要字符串[]
的参数3210
向上投票赞成短和干净的说明 – 2014-11-02 10:01:26
谢谢你的建议。但如果我想让S保持静态变量,那么它将以任何其他方式编写代码。 – RHLS 2014-11-02 10:12:51
@Rslh当前S不是一个静态变量,它是静态主要方法的局部变量。如果你想保留它,你可以将它作为参数传递给get()方法。 – Eran 2014-11-02 10:14:49