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

时间:2014-11-01 22:21:06

标签: java arrays

我必须为课堂制作扑克骰子游戏。我能够成功地随机选择5个数字1到6(类似于掷骰子五次)。但是,我需要展示" Nine" 1," Ten"对于两个,等等。我使用数组来保存数字。我似乎无法弄清楚如何为每个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;
    }

2 个答案:

答案 0 :(得分:1)

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

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

但是,您的代码仍有问题。您可以获得如下随机数:

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

您可能希望这是1到6之间的数字。但是,Math.random()会返回从0(包括)到1(不包括)的双精度数。这意味着将永远不会分配播放器[i] 6.此错误类型解决了另一个错误:由于Java数组从零开始,因此索引为6的元素不存在。 (因此,如果选择了6,那么你的程序会因错误信息而中止。)但是,数字0以及“Nine”这个词永远不会出现在你的解决方案中。所以你必须将两行改为:

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

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

分别

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

答案 1 :(得分:0)

您可以使用开关块

switch(array[i]){
case 1:
printf("One\n");
break;
case 2:
printf("Two\n");
break;

等...