如何在java中为字符串数组赋值然后打印?

时间:2016-02-16 05:26:35

标签: java arrays string

我做了一个套牌,并取得了成功。但是,我在从另一个阵列分配数字并打印它时遇到问题。例如:

String array = {"Bob","James,"Katie"}; 
int array= {2,1,3}; 

它应该将数字分配给字符串数组并打印"James", "Bob", "Katie"。我不想从Java导入任何库或在java库中使用pre方法。

    String [] deck2=new String [52];
    String[] deck=new String [52];



    String suits[]={"Spades","Hearts","Diamonds","Clubs"};
    String rank[]={"2","3","4","5","6","7","8","9","10","Jack","King","Queen","Ace"};

    for(int i=0;i<deck.length;i++){
        deck[i]=rank[i%13]+" "+"of "+suits[i/13];
        deck2[i]=deck[i];
        System.out.println(deck[i]);}

    int[] deck3={28, 38, 31, 50, 43, 34, 25, 33, 17, 22, 12, 4, 5, 18, 40, 11, 27, 15, 3, 7, 41, 8, 36, 16, 51, 21, 13, 24, 30, 52, 44, 46, 35, 37, 19, 45, 10, 1, 39, 9, 26, 48, 47, 32, 29, 20, 49, 23, 6, 14, 42, 2 };
    for(int k=0;k<52;k++){
        for(int j=0;j<52;j++){
            deck3[k]=j;
            System.out.print(deck2[j]);
        }


    }


}}

2 个答案:

答案 0 :(得分:1)

你所说的有点令人困惑,但听起来你用随机顺序填充了deck3的索引值并且你想用它们打印出deck2值。

如果这是真的那么你想要的只是读取deck3中的int值并将其用作deck2的索引,如下所示:

for(int i=0; i<52; i++) {
    System.out.println(deck2[deck3[i]]);
}

or you can read the value first and then use it

for(int i=0; i<52; i++) {
    int randomIndex = deck3[i];
    System.out.println(deck2[randomIndex]);
}

此外,还要解决阿迪尔先生在答案中指出的问题。例如:

您在deck3中的值必须从0-51而不是1-52,因为数组基于0。

答案 1 :(得分:0)

Array索引从零开始,因此在数组suitsSpades具有0索引,那么当您想要获得此值时,您可以这样做:

String name1 = suits[0];

如果指定的索引大于数组大小或&lt; 0,然后它可能导致ArrayIndexOfBoundException

希望这有助于您了解如何访问数组元素。