Java 如何从数组中打印出一个随机字符串
嗨,我想知道如何打印一个数组的一个随机值,而不是其中的两个。这是我的密码:Java 如何从数组中打印出一个随机字符串,java,arrays,printing,system,Java,Arrays,Printing,System,嗨,我想知道如何打印一个数组的一个随机值,而不是其中的两个。这是我的密码: public static void main(String args[]) { String[] currentRoom; String[][] rooms = new String [2] [2]; rooms [0] [0] = "Start"; rooms [0] [1] = "Treasure Room 1"; rooms [1] [0] = "Goblin Hive
public static void main(String args[])
{
String[] currentRoom;
String[][] rooms = new String [2] [2];
rooms [0] [0] = "Start";
rooms [0] [1] = "Treasure Room 1";
rooms [1] [0] = "Goblin Hive 1";
rooms [1] [1] = "Spider Nest";
Random rand = new Random();
{
currentRoom = rooms[rand.nextInt(rooms.length)];
System.out.println(Arrays.toString(currentRoom));
}
}
当我打印出来时,它会显示我数组中的两个值,比如:[“开始”,“宝藏室1”],我需要它只打印出一个值,比如:[“开始”]或者[“蜘蛛巢1”]。我在想我怎么才能解决这个问题
非常感谢您的帮助:)您需要在第二维度中生成一个随机索引,如下所示:
String[] currentRoomRow = rooms[rand.nextInt(rooms.length)];
String currentRoom = currentRoomRow[rand.nextInt(currentRoom.length)];
System.out.println(currentRoom);
当所有行的大小相同时,这是正常的;如果没有,上述代码将“青睐”来自“较短”行的项目。修复这一缺陷需要更多的准备:您需要“展平”数组,生成一个最大项数的随机数,然后从展平的数组中选取一项。这是一个二维数组。通过只使用一个索引,您将得到一个数组(可能有多个值)。通过
使用房间[0]
您将返回[“开始”,“宝藏房间1”]
因此,您必须通过2个索引
达斯宾莱特的解决方案似乎是最好的