我有我的數組中的國家列表,我想從列表中選擇隨機國家(使用隨機可能?),但我自己沒有找到答案...字符串數組列表中的隨機字符串
這是我到目前爲止有:
String[] list = {"Finland", "Russia", "Latvia", "Lithuania", "Poland"};
Random r = new Random();
我有我的數組中的國家列表,我想從列表中選擇隨機國家(使用隨機可能?),但我自己沒有找到答案...字符串數組列表中的隨機字符串
這是我到目前爲止有:
String[] list = {"Finland", "Russia", "Latvia", "Lithuania", "Poland"};
Random r = new Random();
嘗試:
list[r.nextInt(list.length)];
list[Math.floor(r.nextFloat()*5.99)]
爲什麼不是5.99而不是5.99? –
因爲地板。你不會得到一個統一的分佈,因爲5只會是getFloat返回1.0時的結果。 – roni
但只有5個條目,所以你想要一個統一的分配0..4不是5. –
private void pickText(){
textview textView1= (TextView) findViewById(R.Id.textView1)
Random eventPicker = new Randorn();
randomN = eventPicker.nextInt(3) +1;
switch (randomN){
case 1: Intent a textview1.setText(StringOne);
break;
case 2: textview1.setText(StringTwo);
break;
我從我的手機中輸入了這個語法錯誤,但它有效。
從一個字符串數組中拉出一個隨機字符串會導致類似的問題。 發現這個工作得相當好,我把它應用到一個按鈕動作使每點擊一個隨機的繪製(我與任何陣列尺寸發現有相同的字符串的多個實例被連續整個繪製):
import java.util.*;
import java.util.Random.*;
class Countries {
public Random g2 = new Random();
public String[] list = new String[] { "Finland", "Russia",
"Latvia", "Lithuania", "Poland" };
String random2;
}
// Applied to a button action:
int INDEXn = g2.nextInt(list.length);
for (int i2 = 0; i2 < INDEXn; i2++) {
random2 = (String) (list[INDEXn]);
}
System.out.println(random2 + '\n');
INDEXn
正在使用的g2
隨機數正在調用一個隨機整數,在這種情況下,已定義的字符串將轉換爲整數值,即字符串數組list
。 for循環一次循環遍歷字符串數組。 random2字符串將所選的整數從INDEXn
轉換爲(list[INDEXn]
)中的相應字符串變量。
static String getRandomString(){
int r = (int) (Math.random()*5);
String name = new String [] {"India","USA","UK","Russia"}[r];
return name;
}
@roni:Burleigh Bear是正確的,值永遠不會是list.length。根據Java文檔:「返回一個僞隨機數,均勻分佈的int值在0(含)和指定的值**(不含)之間**」 – TaylorP
謝謝先生,正是我所需要的。 –
@Burleigh Bear您能告訴我如何從該數組中隨機選擇一個字符串,並且每次都需要其他字符串。我的意思是如果我不想重複字符串值,那麼在此代碼中需要修改什麼。 – Kunu