gpt4 book ai didi

java - 如何将某个字符串显示为整数?

转载 作者:行者123 更新时间:2023-12-01 12:20:33 24 4
gpt4 key购买 nike

我必须为类制作一个扑克骰子游戏。我能够成功随机选出 1 到 6 五个数字(类似于掷骰子五次)。但是,我需要显示“九”代表 1,“十”代表两个,等等。我使用数组来保存数字。我似乎无法弄清楚如何为每个 int 分配字符串输出。

public static void main(String[] args) {

int[] player = new int[5];
String[] cards = new String[] {"Nine", "Ten", "Jack", "Queen", "King", "Ace"};

System.out.println("User: " + playerHand(player, cards));

}
public static String playerHand(int[] player, String[] cards) {
String hand = "";
for (int i = 0; i < player.length; i++) {
player[i] = (int) (Math.random() * (6 - 1) + 1);
hand += player[i] + " ";
}

return hand;
}

最佳答案

您已将字符串放入数组中,因此只需将数组中的一个元素添加到您的手字符串中即可:

hand += cards[player[i]] + " ";

但是,您的代码仍然存在问题。您获得的随机数如下:

player[i] = (int) (Math.random() * (6 - 1) + 1);

您可能期望这是一个从 1 到 6 的数字。但是,Math.random() 返回一个从 0(包含)到 1(不包含)的 double 值。这意味着player[i]永远不会被分配6。这个错误解决了另一个错误:由于Java数组是从零开始的,索引为6的元素不存在。 (因此,如果选择 6,您的程序将中止并显示错误消息。)但是,数字 0 以及单词“Nine”将永远不会出现在您的解决方案中。所以你必须将这两行更改为:

hand += cards[player[i] - 1] + " ";

player[i] = (int) (Math.random() * 6 + 1);

分别。

考虑将cards数组设置为静态类成员;那么您不需要将数组作为参数传递给 playerHand 方法。

关于java - 如何将某个字符串显示为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26693851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com