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+")";
}
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 个数字字母对,则需要循环它。
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));
添加回答
举报