作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须为类制作一个扑克骰子游戏。我能够成功随机选出 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/
我是一名优秀的程序员,十分优秀!