2014-11-02 5 views
0

У меня есть String[], из которого я хочу получить случайное значение. Я пытаюсь поместить эту логику в другой метод. Это мой код до сих пор.Как получить случайную строку из массива строк?

public static void main(String[]args) { 
    String [] S = {"aaa", "bbb", "ccc", "ddd", "eee","ggg", "hhh", "iii", "kkk"}; 
} 

public String get() { 
    int i; 

    for(i = 0; i <= 4; i++) { 

    } 
} 

мне нужно случайные строки выхода из массива S с методом get(), но я действительно не знаю, как это сделать.

ответ

4

Сначала вам нужно будет переместить массив S как переменную экземпляра или статическую переменную, поскольку в настоящее время она локальна для вашего основного метода и не может быть доступна из вашего метода get.

Тогда вы можете получить случайную строку так:

private Random rnd = new Random(); 
public String get() 
{ 
    return S[rnd.nextInt(S.length)]; 
} 
+0

Вверх проголосовали за короткое и чистое объяснение –

+0

Спасибо за совет. но если я хочу, чтобы S оставалась статической переменной, это будет любой другой способ написать код. – RHLS

+0

@Rslh в настоящее время S не является статической переменной, это локальная переменная статического основного метода. Если вы хотите сохранить его там, вы можете передать его в качестве аргумента методу get(). – Eran

0

Вы можете использовать java.util.Random для генерации случайных вещей. Однако имейте в виду, что это не безопасно, а не действительно случайно.

Вы можете получить случайные char сек из массива S:

String randomString = ""; 
Random rand = new Random(); 
for(int i=0;i<=4;i++) 
{ 
    randomString += S[rand.nextInt(S.length())].charAt(0); 
} 

System.out.println(randomString); 
0

вам не нужна петля Get() метода, вы должны сгенерировать случайное число ниже длинами исходного массива и сказать, обратный S [СЛУЧАЙНОЕ_ЧИСЛИ]

EDIT

пусть метод прибудет принимает параметр String []

Смежные вопросы