所以我有一个二维数组,其中包含饮料的名称和价格 Test[Name][Price]:
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]);
谢谢!
编辑
我已根据价格将我的数组排序为最小到最大,并尝试使用此代码以找到可能购买的最大饮料,在 之间选择一个随机索引,然后将 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]);
为什么这不起作用?
最终编辑
弄清楚了!!原来是一些小逻辑问题,改成四循环,效果很好!!这是我对我的代码所做的:
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);