有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何显示整数的特定字符串?

我得为课堂做一个扑克牌骰子游戏。我能够成功地随机选择5个数字1到6(类似于滚动模具5次)。但是,我需要显示“9”代表1,“10”代表2,等等。我使用数组来保存数字。我似乎不知道如何为每个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) 个答案

  1. # 1 楼答案

    你可以用开关块

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

    等等

  2. # 2 楼答案

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

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

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

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

    你可能认为这是一个从1到6的数字。但是,Math.random()返回从0(包含)到1(排除)的双精度数。这意味着玩家[i]永远不会被分配到6。这种错误解决了另一个错误:因为Java数组是基于零的,所以索引为6的元素不存在。(因此,如果选择了6,您的程序将中止并显示错误消息。)但是,数字0和“九”这个词永远不会出现在你的解决方案中。所以你必须把这两行改成:

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

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

    分别

    考虑将^ {< CD2>}数组设为静态类成员;然后不需要将数组作为参数传递给playerHand方法