使用.length 属性获取当前数组的长度, 长度就是数组中元素的个数.
package day05;
public class Demo01 {
public static void main(String[] args) {
/*
* 数组的长度
*/
String[] names = {"Tom", "Andy", "Jerry", "Wang", "John"};
int l = names.length;
System.out.println(l);
/*
* 利用长度遍历数组的元素
*/
// 5
for(int i = 0; i
存储一副扑克牌

String[] cards=new String[54];
String[] rank={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
for(int i=0;i
package day05;
public class Demo02 {
public static void main(String[] args) {
/*
* 创建一副扑克牌
*/
//点数(rank)数组
String[] rank =
{"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};
//扑克牌数组, 预留54个数组元素
String[] cards = new String[54];
//创建扑克牌添加到cards数组中
// 13
for (int i = 0; i < rank.length; i++) {
//value 代表每个点数值
String value = rank[i];
//创建了 黑桃3 黑桃4 ... 黑桃2
//放到扑克牌数组中
cards[i] = "黑桃" + value;
cards[i + 13] = "红桃" + value;
cards[i + 13 + 13] = "梅花" + value;
cards[i + 13 + 13 + 13] = "方块" + value;
}
cards[52] = "小王";
cards[53] = "大王";
//检查扑克牌数组的内容
for (int i = 0; i < cards.length; i++) {
String card = cards[i];
System.out.print(card + " ");
if ((i + 1) % 13 ==0){
System.out.println();
}
}
}
}
随机数
Java 提供了随机数API
使用步骤:
-
import java.util.Random;
-
Random random = new Random();
-
int n = random.nextInt(8); // 8是边界范围, 当写8的时候产生: 0 ~ 7 的随机数
package day05;
import java.util.Random;
public class Demo03 {
public static void main(String[] args) {
/*
* 测试随机数
*/
Random random = new Random();
int n = random.nextInt(8);
System.out.println(n);
}
}
抽取一张扑克牌
扑克牌的位置0~53: random.nextInt(cards.length)
洗牌

- package com.zyq;
- import java.util.Arrays;
- import java.util.Random;
- public class Cards {
- public static void main(String[] args) {
- //1.创建一副扑克牌放入cards数组中
- String[] rank = {"3", "4", "5", "6", "7", "8", "9",
- "10", "J", "Q", "K", "A", "2"};//点数(rank)数组
- //扑克牌数组, 预留54个数组元素
- String[] cards = new String[54];
- //创建扑克牌添加到cards数组中
- // 13
- for (int i = 0; i < rank.length; i++) {
- //value 代表每个点数值
- String value = rank[i];
- //创建了 黑桃3 黑桃4 ... 黑桃2
- //放到扑克牌数组中
- cards[i] = "黑桃" + value;
- cards[i + 13] = "红桃" + value;
- cards[i + 13 + 13] = "梅花" + value;
- cards[i + 13 + 13 + 13] = "方块" + value;
- }
- cards[52] = "小王";
- cards[53] = "大王";
-
-
-
- //2.调用printCards()方法打印cards数组中生成的每张牌
- printCards(cards);
-
-
-
-
- //3.洗牌: 随机从数组中取出一张牌和第i张牌进行交换(i是一个不断减小的数组下标)
- Random random = new Random();
- for(int i=cards.length-1; i>=1; i--){
- int j = random.nextInt(i);
- String t = cards[i];
- cards[i] = cards[j];
- cards[j] = t;
- }
-
- //4.调用printCards()方法打印洗牌后的数组cards中的每张牌
- printCards(cards);
-
-
-
- //5.发牌: 将cards数组中的每张牌按顺序取出依次放入wang、lee、zhang三个数组中
- String[] wang = new String[17];
- String[] lee = new String[17];
- String[] zhang = new String[17];
- for (int i=0; i<17; i++){
- wang[i] = cards[i*3];
- lee[i] = cards[i*3+1];
- zhang[i] = cards[i*3+2];
- }
-
-
-
- //6.显示一下每个人手里的牌
- System.out.println("老王手上的牌是:"+Arrays.toString(wang));
- System.out.println("老李手上的牌是:"+Arrays.toString(lee));
- System.out.println("老张手上的牌是:"+Arrays.toString(zhang));
- }
-
-
-
- //打印cards数组中的每张牌
- private static void printCards(String[] cards) {
- //检查扑克牌数组的内容
- for (int i = 0; i < cards.length; i++) {
- String card = cards[i];
- System.out.print(card + " ");
- if ((i + 1) % 13 ==0){
- System.out.println();
- }
- }
- System.out.println();
- }
-
-
- }
发牌

练习题:
