随机抽取一张扑克牌 输出抽到牌的点数和花型 求用键值对的方法实现
```java
package ch3choose.exec24;/*
* 孤鸿
* 2023/5/19
*/
public class Exec24_1 {
public static void main(String[] args) {
int i=(int)(Math.random()*52);
String pattern;
String point;
//判断点数
switch (i%13) {
case 0:
point="Ace";
break;
case 10:
point="Jack";
break;
case 11:
point="Queen";
break;
case 12:
point="King";
break;
default:
point=Integer.toString(i%13);
break;
}
//判断花型
if(i<13){
pattern="Clubs";
}
else if(i>=13&&i<26){
pattern= "Diamonds";
}
else if(i>=26&&i<39){
pattern= "Hearts";
}
else{
pattern= "Spades";
}
System.out.println("The card you picked is "+point+" of "+pattern);
}
}
方法二 用数组实现的 感觉太繁琐了
```java
package ch3choose.exec24;/*
* 孤鸿
* 随机选取一张扑克牌
* 2023/5/19
*/
import java.util.Scanner;
public class Exec24 {
public static void main(String[] args) {
// String []arr1=new String[4];
String [][] arr=new String[4][13]; //生成一个二维数组用来存放牌的花型和牌的点数
// String [][]card=new String[arr1.length][arr.length];
String [] card=new String[52]; //生成一个数组存放所有的牌
int k=0;
//存放所有牌型到数组中
for (int i = 0; i < arr.length; i++) {
String s1 = "";
switch (i) {
case 0:
s1 = "Clubs";
break;
case 1:
s1 = "Diamonds";
break;
case 2:
s1 = "Hearts";
break;
case 3:
s1 = "Spades";
break;
default:
break;
}
for (int j = 0; j < arr[i].length; j++) {
String s2 = "";
if (j == 0) {
s2 = "Ace";
} else if (j == 10) {
s2 = "Jack";
} else if (j == 11) {
s2 = "Queen";
} else if (j == 12) {
s2 = "King";
} else {
s2 = Integer.toString(j + 1);
}
arr[i][j] =s1+" "+s2;
}
}
//将数组的数据复制到数组card中
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
card[k] = arr[i][j];
k++;
}
}
// System.out.println("请抽取一张牌:");
int num=(int)(Math.random()*52); //生成一个随机数
System.out.println("您抽取的牌是:"+card[num]); //显示抽取的牌的点数
}
}