2012-11-12 44 views
27

Tôi có một mảng chuỗi:yếu tố ngẫu nhiên từ mảng chuỗi

String[] fruits = {"Apple","Mango","Peach","Banana","Orange","Grapes","Watermelon","Tomato"}; 

và tôi đang nhận được yếu tố ngẫu nhiên từ này bằng cách:

String random = (fruits[new Random().nextInt(fruits.length)]); 

bây giờ tôi muốn để có được số lượng mà tại đó táo có mặt khi tôi nhấn nút để có được trái cây ngẫu nhiên, như khi tôi nhấn nút randon nó mang lại cho tôi chuối..và cũng nên cung cấp cho tôi rằng số phần tử là 3

Tôi nhận được phần tử nhưng có prob lem nhận được số nguyên tố, vì vậy hãy giúp tôi ra

+2

khi bạn nói số phần tử, nghĩa là chỉ mục của quả trong mảng của bạn? – omi0301

+0

vâng tôi có nghĩa là chỉ mục – user1817558

+0

Xem thêm: [Cách chọn ngẫu nhiên một phần tử từ một mảng] (http://stackoverflow.com/questions/8065532/how-to-randomly-pick-an-element-from-an- mảng) –

Trả lời

64

Chỉ cần lưu trữ các chỉ số được tạo ra trong một biến, và sau đó truy cập vào mảng bằng cách sử dụng varaible này:

int idx = new Random().nextInt(fruits.length); 
String random = (fruits[idx]); 

T.B. Tôi thường không thích tạo đối tượng Random mới cho mỗi lần randoization - Tôi thích sử dụng một đơn Random trong chương trình - và sử dụng lại nó. Nó cho phép tôi dễ dàng tái tạo một chuỗi có vấn đề nếu sau này tôi tìm thấy bất kỳ lỗi nào trong chương trình.

Theo phương pháp này, tôi sẽ có một số biến Random r nơi nào đó, và tôi sẽ chỉ cần sử dụng:

int idx = r.nextInt(fruits.length) 

Tuy nhiên, cách tiếp cận của bạn là OK là tốt, nhưng bạn có thể có thời gian khó tái tạo một chuỗi cụ thể nếu bạn cần phải sau này.

+6

sử dụng generics, nó khoan xuống 'private static T randomFrom (T ... items) {return items [new Random(). nextInt (items.length)]; } ' –

Các vấn đề liên quan