我做了一个套牌,并取得了成功。但是,我在从另一个阵列分配数字并打印它时遇到问题。例如:
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]);
}
}
}}
答案 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
索引从零开始,因此在数组suits
中Spades
具有0索引,那么当您想要获得此值时,您可以这样做:
String name1 = suits[0];
如果指定的索引大于数组大小或&lt; 0,然后它可能导致ArrayIndexOfBoundException
。
希望这有助于您了解如何访问数组元素。