所以我有一个二维数组与饮料的名称,价格测试[名] [参考价格]:从二维数组中选择随机字符串?
public static final String[][] Test = {{"vodka1","5.0"},{"vodka2","10.0"},{"vodka3","15.0"},{"vodka4","20.0"},{"vodka5","25.0"}};
什么即时试图做的是让用户输入他们的最大拥有它价格,然后从二维数组中随机选择一个低于其最大价格的饮料。
因此,首先我要如何缩小阵列,使其低于用户最高价格?
这就是我想(我知道它错了,但它的一切我能想到的):
private static final String[] test1 = {};
test1 = (array_city.Test[i][j] <= Price);
randomIndex = random.nextInt(test1.length);
text2.setText(test1[randomIndex]);
谢谢!
编辑
我已按价格排序我的阵列到最小到最大,为了找到最大的饮料可以购买,挑选somehwere之间的随机指标试图此代码,然后的setText到字符串,但当活动页面启动时崩溃? 这是我的代码:
convert = Double.valueOf(array_city.Test[c][1]);
// Set vodka brand
while(Price <= convert){
c++;
convert = Double.valueOf(array_city.Test[c][1]);
}
final TextView text2 = (TextView) findViewById(R.id.display2);
randomIndex = random.nextInt(c);
text2.setText(array_city.Test[randomIndex][1]);
为什么这不起作用?
FINAL EDIT
想通了!原来是一些小的逻辑问题,改为四个循环,它的工作原理非常棒!这里是我做我的代码:
convert = Double.valueOf(array_city.Test[c][1]);
// Set vodka brand
for(double i = Price; i >= convert;){
c++;
convert = Double.valueOf(array_city.Test[c][1]);
}
final TextView text2 = (TextView) findViewById(R.id.display2);
randomIndex = random.nextInt(c);
这是数组按价格排序的先决条件吗? – eboix
@eboix我想我很困惑你到底在问什么? – Hockeyman271
他问是否价格总是按照从最小到最大'[1,2,3,4,5]'等数组的顺序排列,而不是'[3,5,2,1,4]'。 。如果数组总是被排序,那么你可以忽略该数组上/下的部分。 –