Использование длины списка строкового массива в качестве целого числа - PullRequest
1 голос
/ 13 февраля 2011

Я использую генератор случайных чисел, чтобы выбрать элемент из строкового массива Android. Есть ли способ установить мое целое число в качестве длины массива без фактического подсчета количества элементов в массиве?

Вот пример кода случайного числа, который я использую:

private Random random = new Random();
private int n = random.nextInt(4);

private String randText;

public Object(Context contex)
{
String[] string = context.getResources().getStringArray(R.array.text);

randText = "Stuff to display " + string[n] +".";
}

public String getRandText
{
return randText
}

Я бы хотел определить вышеприведенную «4» как длину определенного списка массивов. Кто-нибудь знает как?

Ответы [ 2 ]

2 голосов
/ 14 февраля 2011

Я бы хотел определить вышеприведенную «4» как длину определенного списка массивов.

Возможно, это то, что вы ищете:

String[] strs = { "str1", "str2", "str3", "str4", "str5" };

// Select a random (valid) index of the array strs
Random rnd = new Random();
int index = rnd.nextInt(strs.length);

// Print the randomly selected string
System.out.println(strs[index]);

Чтобы получить доступ к фактическому массиву, вы делаете следующее:

Resources res = getResources();
String[] yourStrings = res.getStringArray(R.array.your_array);

(Затем, чтобы получить количество элементов в массиве, вы делаете yourStrings.length.)


Относительно вашего редактирования. Попробуйте вместо этого:

private Random random = new Random();
private int n; // Can't decide up here, since array is not declared / initialized

private String randText;

public YourObject(Context contex) {
    String[] string = context.getResources().getStringArray(R.array.text);
    n = random.nextInt(string.length);     // <--- Do it here instead.
    randText = "Stuff to display " + string[n] +".";
}

public String getRandText {
    return randText;
}
2 голосов
/ 13 февраля 2011
List myList = ...
int n = select.nextInt(myList.size());
...