我正在使用随机数生成器从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”定义为特定数组列表的长度。谁知道怎么做?
答案 0 :(得分:2)
List myList = ...
int n = select.nextInt(myList.size());
答案 1 :(得分:2)
我想将上面的“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;
}