![](/img/trans.png)
[英]How to randomly pick a string from multiple finals strings in Java?
[英]How to randomly select a string between two strings from ENUM in java?
我有以下兩個字符串-
HelloWorld
GoodBye
如何隨機選擇任一字符串?
下面是一個包含上面兩個字符串的枚舉,我應該使用下面的枚舉來隨機選擇HelloWorld
和GoodBye
之間的任何字符串
public enum StringEnum {
HelloDavid, HelloWorld, GoodBye;
private static final Map<Integer, StringEnum> BY_CODE_MAP = new LinkedHashMap<Integer, StringEnum>();
static {
for (StringEnum rae : StringEnum.values()) {
BY_CODE_MAP.put(rae.ordinal(), rae);
}
}
public static String forCode(int code) {
return BY_CODE_MAP.get(code).name();
}
}
知道通過從枚舉中獲取字符串如何有效地完成此工作嗎?
通常,您會將所有要從中選擇的元素放入某個數據結構(如數組)中,然后選擇一個隨機索引進行提取。
在您的示例中,看起來可能是這樣的:(我假設您實際上是想從所有枚舉值中進行選擇,並且想要返回該枚舉值而不是String
)
int idx = new Random().nextInt(StringEnum.values().length);
StringEnum random = StringEnum.values()[idx];
另請參閱“字符串數組的隨機元素”之類的問題 ,以獲取有關通常選擇隨機元素的更多信息。
對於只在上述兩個元素之間進行選擇的簡單情況,您可以檢索一個隨機整數,然后根據它是正數(包括0)還是負數來確定:
StringEnum random = (new Random().nextInt() < 0) ?
StringEnum.HelloWorld : StringEnum.Goodbye;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.