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

标签 java arrays

我必须为类制作一个扑克骰子游戏。我能够成功随机选出 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/

相关文章:

java - 在 sdkman 中自定义 sdk 列表/sdk 使用

java - 为什么此代码会抛出 MalformedURLException?

ios - 刽子手计划

c - 如何将结构数组的地址传递给函数?

java - 如何给最终变量赋值

java - 将不规则二维数组中的子数组设为 Null

java - 如何使用 RedisTemplate 访问由 spring redis session 存储的散列 key ?

java - 为什么没有 java.lang.Array 类?如果java数组是一个Object,它不应该扩展Object吗?

c - 如果索引反向迭代,则段错误(核心已转储)

ios - 如何从 AppDelegate 访问 TableView Controller 上声明为公共(public)的数组变量?