所以我有一個二維數組與飲料的名稱,價格測試[名] [參考價格]:從二維數組中選擇隨機字符串?
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]'。 。如果數組總是被排序,那麼你可以忽略該數組上/下的部分。 –