2011-07-17 45 views
8

Tôi có danh sách các quốc gia trong mảng của mình, tôi muốn chọn quốc gia ngẫu nhiên từ danh sách (sử dụng ngẫu nhiên có thể?), Nhưng tôi chưa tìm ra câu trả lời ...Chuỗi ngẫu nhiên từ danh sách mảng chuỗi

Đây là những gì tôi có cho đến nay:

String[] list = {"Finland", "Russia", "Latvia", "Lithuania", "Poland"}; 
Random r = new Random(); 

Trả lời

27

Hãy thử:

list[r.nextInt(list.length)]; 
+0

@roni: Burleigh Bear là chính xác, giá trị sẽ không bao giờ được liệt kê.length. Theo tài liệu Java: "Trả về một pseudorandom, giá trị int được phân bố đồng đều giữa 0 (bao gồm) và giá trị được chỉ định ** (độc quyền) **" – TaylorP

+0

Cảm ơn bạn, chỉ là những gì tôi cần. –

+0

@Burleigh Bear Bạn có thể cho tôi biết làm thế nào tôi có thể chọn một chuỗi ngẫu nhiên từ mảng đó và tôi cũng muốn một số chuỗi khác mỗi lần. Tôi có nghĩa là nếu tôi không muốn lặp lại chuỗi giá trị những gì tôi cần sửa đổi trong mã này. – Kunu

0
list[Math.floor(r.nextFloat()*5.99)] 
+1

Tại sao không phải 5 thay vì 5,99? –

+0

vì sàn nhà. bạn sẽ không nhận được phân phối đồng đều vì 5 sẽ chỉ là kết quả khi getFloat trả về 1.0. – roni

+0

Nhưng chỉ có 5 mục để bạn muốn có một bản phân phối đồng đều cho 0..4 không 5. –

0
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; 

Tôi đã nhập từ điện thoại của mình có lỗi cú pháp, nhưng nó hoạt động.

1

Chạy vào một vấn đề tương tự với việc kéo một chuỗi ngẫu nhiên từ một mảng chuỗi. Tìm thấy này để làm việc khá tốt, tôi áp dụng nó vào một button action như vậy với mỗi nhấp chuột ngẫu nhiên được rút ra (Tôi tìm thấy với bất kỳ kích thước mảng có nhiều trường hợp của cùng một chuỗi được rút ra liên tục trong suốt):

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'); 

Số ngẫu nhiên g2 đang được sử dụng bởi INDEXn đang gọi số nguyên ngẫu nhiên, trong trường hợp này các chuỗi được xác định được chuyển thành các giá trị số nguyên, từ mảng Chuỗi list. Vòng lặp for-loop đang đi qua chuỗi String một lần. Chuỗi random2 đang chuyển đổi số nguyên đã chọn từ INDEXn thành biến chuỗi thích hợp trong (list[INDEXn]).

1
static String getRandomString(){ 
     int r = (int) (Math.random()*5); 
     String name = new String [] {"India","USA","UK","Russia"}[r]; 
     return name; 
    } 
Các vấn đề liên quan