如何从给定的列表中选择一个随机字符串?(Java)

How to pick a random String from a given list? (Java)

本文关键字:一个 随机 Java 字符串 选择 列表      更新时间:2023-09-26

我已经在JavaScript中做了相同的,但我是新的JavaScript,我不知道如何转换它…:/

<script language="JavaScript">
<!--
var randomString = new Array ();
randomString[0] = "a random string";
randomString[1] = "another random string";
randomString[2] = "another random string";
randomString[3] = "another random string";
randomString[4] = "another random string";
randomString[5] = "another random string";
randomString[6] = "another random string";
randomString[7] = "another random string";
var i = Math.floor(7*Math.random())
document.write(randomString[i]);
//-->
</script>

在Java中有几个选项。您可以通过使用String数组来实现此处使用的相同策略:

String[] randomString = new String[8];
randomString[0] = "a random string";
randomString[1] = "another random string";
randomString[2] = "another random string";
randomString[3] = "another random string";
randomString[4] = "another random string";
randomString[5] = "another random string";
randomString[6] = "another random string";
randomString[7] = "another random string";
int i = Math.floor(randomString.length * Math.random());
System.out.println(randomString[i]);

另一个选择是使用Java集合框架,并使用类似List的东西:

List<String> randomStrings = new LinkedList<String>();
randomStrings.add("a random string");
randomStrings.add("another random string");
randomStrings.add("another random string");

一旦你有了一个列表,你可以做几件事:

Collections.shuffle(randomStrings);
System.out.println(randomStrings.get(0));

或:

int i = Math.floor(randomStrings.size() * Math.random());
System.out.println(randomStrings.get(i));

集合。Shuffle实际上会修改列表并对元素进行洗牌,所以要注意这一点。

我的Java有点生疏,但这是怎么回事?

List<String> s = new List<String>(); //better than an array, because those are bounded
s.add("this is a string"); // first string
//repeat
int i = new Random().nextInt(s.size()); 
//from 0 - size exclusive, and the array starts at 0, so this is good
String result = s.get(i);