Java 训练营
数组
长度与遍历数据元素
使用.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);/** 利用长度遍历数组的元素*/// 5for(int i = 0; i<names.length; i++){//i = 0 1 2 3String name = names[i];System.out.println(name);}} }
存储一副扑克牌
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<rank.length; i=i+1){cards[i] = "黑桃" + rank[i];cards[13+i] = "红桃" + rank[i];cards[13+13+i] = "梅花" + rank[i];cards[13+13+13+i] = "方块" + rank[i]; } 周五,上边的扑克牌数组构建方式逻辑理解不了的话就请把cards数组写成下边方式: String[] cards={ "红桃3","红桃4","红桃5","红桃6","红桃7","红桃8","红桃9","红桃10","红桃J","红桃Q","红桃K","红桃A","红桃2","黑桃3","黑桃4","黑桃5","黑桃6","黑桃7","黑桃8","黑桃9","黑桃10","黑桃J","黑桃Q","黑桃K","黑桃A","黑桃2","梅花3","梅花4","梅花5","梅花6","梅花7","梅花8","梅花9","梅花10","梅花J","梅花Q","梅花K","梅花A","梅花2","方块3","方块4","方块5","方块6","方块7","方块8","方块9","方块10","方块J","方块Q","方块K","方块A","方块2","大王" ,"小王" };
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数组中// 13for (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数组中// 13for (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();}}
发牌
练习题: