亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從列表中選擇隨機 char 和 double 并將它們輸出到配對在一起的字符串中

如何從列表中選擇隨機 char 和 double 并將它們輸出到配對在一起的字符串中

泛舟湖上清波郎朗 2023-07-28 10:37:50
我對 Java 比較陌生,我的部分作業要求我生成一個由 16 對音符和時值組成的隨機字符串。我查找了一些示例并嘗試篩選課堂上提供的材料,但我發現的結果要么針對不同的編程語言,要么僅在列表中選擇一個隨機項目。我將音符和持續時間定義為:    static char[] validNotes = {'A', 'B', 'C', 'D', 'E', 'F', 'G'};         static double[] validDuration = {0.25, 0.5, 1, 2, 4};預期的字符串輸出是隨機的,但一個例子是:[A(2), G(3), B(0.5), C(1), C(1), D(0.25), …]
查看完整描述

3 回答

?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

像這樣的事情應該可以解決問題;


static char[] validNotes = {'A', 'B', 'C', 'D', 'E', 'F', 'G'};

static double[] validDuration = {0.25, 0.5, 1, 2, 4};

static Random random = new Random();


static String getRandomPair() {

    char note = validNotes[random.nextInt(validNotes.length)];

    double duration = validDuration[random.nextInt(validDuration.length)];

    return note+"("+duration+")";

}


查看完整回答
反對 回復 2023-07-28
?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

與此類似的東西可以工作 - 只需使用隨機數作為數組的位置值。


Random r = new Random();


        int randomNote = r.nextInt(validNotes.length);

        int randomNumber = r.nextInt(validDuration.length);


        System.out.println(validNotes[randomNote] + "(" + validDuration[randomNumber] + ")");

這將為您提供一對數字字母,因此如果您想獲得 16 個數字字母對,則需要循環它。


查看完整回答
反對 回復 2023-07-28
?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

? ? List<String> pairs = new ArrayList<>();

? ? for (char note : validNotes)

? ? for (double duration : validDuration)

? ? pairs.add(note + "(" + duration + ")");

? ? Collections.shuffle(pairs);

? ? System.out.println(pairs.subList(0, 16));


查看完整回答
反對 回復 2023-07-28
  • 3 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號