04_数组

 1 /**
 2  * 冒泡排序
 3  * @author jliu.l
 4  * @2020年7月6日
 5  * 
 6  */
 7 public class Demo01 {
 8 
 9     /**
10      * @param args
11      */
12     public static void main(String[] args) {
13         // TODO 自动生成的方法存根
14         int[] arr = {2,5,8,3,6,7};
15         System.out.print("排序前:");
16         for (int i : arr) {
17             System.out.print(i+" ");
18         }
19         System.out.println();
20 
21         for (int i = 0; i < arr.length; i++) {
22             boolean flag = true;
23             for (int j = 0; j < arr.length-1-i; j++) {
24                 if(arr[j]>arr[j+1]) {
25                     int temp = arr[j];
26                     arr[j] = arr[j+1];
27                     arr[j+1] = temp;
28                     
29                     flag = false;
30                 }
31             }
32             if (flag) {
33                 break;
34             }    
35         }
36         System.out.print("排序后:");
37         for (int i : arr) {
38             System.out.print(i+" ");
39         }
40     }
41 }
 1 /**
 2  * 功能:定义一个方法实现任意字符串反向输出功能,比如:“abcde”,结果为:“edcba”
 3  * @author jliu.l
 4  * @2020年7月6日
 5  * 
 6  */
 7 public class Demo02 {
 8     public static void main(String[] args) {
 9         String str = "abcdef";
10         Tools.reverser(str);
11         
12         int[] num = {1,6,5,10,2,0,9};
13         Tools.getIndex(num);
14     }
15 }
 1 /**
 2  * @author jliu.l
 3  * @2020年7月6日
 4  * 
 5  */
 6 public class Poker {
 7 
 8     /**
 9      * @param args
10      */
11     public static void main(String[] args) {
12         // TODO 自动生成的方法存根
13         String[] num = {"2","3","4","5","6","7","8","9","10","J","Q","k","A"};
14         String[] str = {"♠","♥","♣","♦"};
15         
16         String[] poker = new String[str.length*num.length];
17         
18         //组合54张牌
19         poker = Tools.combinationPoker(str,num);
20         //Tools.printPoker(poker);
21         //打乱牌序
22         poker = Tools.breakPoker(poker);
23         
24         //玩家
25         String[] player = {"小鹿","小明","小杨"};
26         int flag = Tools.flag();
27         
28         //发牌
29         Tools.handoutPoker(poker,player,flag);
30     }
31 }
  1 /**
  2  * @author jliu.l
  3  * @2020年7月6日
  4  * 
  5  */
  6 public class Tools {
  7     /**
  8       * 实现任意字符串反向输出功能
  9      * @param str 
 10      * 
 11      */
 12     public static void reverser(String str) {
 13         // TODO 自动生成的方法存根
 14         System.out.println("反向输出前:"+str);
 15         String  str1 = "";
 16         for (int i = 0; i < str.length(); i++) {
 17             str1 = str.charAt(i) + str1;
 18         }
 19         System.out.println("反向输出后:"+str1);
 20     }
 21     
 22     /*j = 0        index = 1
 23      * 1    1
 24      * 2    3
 25      * 3 4
 26      * 
 27      * 
 28       * 定义一个整数数组,找到其中的最大值和最小值的索引并输出
 29      */
 30     public static void getIndex(int[] num) {
 31         int max = num[0];
 32         int min = num[0];
 33         int maxdex = 0;
 34         int mindex = 0;
 35         for (int j=0; j < num.length-1; j++) {
 36             if(max < num[j+1]) {
 37                 max = num[j+1];
 38                 maxdex = j+1;
 39             }
 40             
 41             if(min > num[j+1]) {
 42                 min= num[j+1];
 43                 mindex = j+1;
 44             }
 45         }
 46         System.out.println(Arrays.toString(num)+"中最大值"+max+"的索引是:"+(maxdex));
 47         System.out.println(Arrays.toString(num)+"中最小值"+min+"的索引是:"+(mindex));
 48     }
 49     
 50     //binarySearch 二分查找
 51     public static void binarySearch() {
 52         int[] arr = {1,3,5,9,6,7,8};
 53         
 54         if(Arrays.binarySearch(arr,3) >= 0) {
 55             System.out.println("找到了");
 56         }else {
 57             System.out.println("没找到");
 58         }
 59     }
 60     
 61     /**
 62      * 组合牌
 63      * alt+shift+J
 64      * @param str
 65      * @param num
 66      */
 67     public static String[] combinationPoker(String[] str, String[] num) {
 68         // TODO 自动生成的方法存根
 69         String[] poker = new String[str.length*num.length+2];
 70         int index = 0;
 71         poker[str.length*num.length] = "大王";
 72         poker[str.length*num.length+1] = "小王";
 73 
 74         for (int j = 0; j < num.length; j++) {
 75             for (int i = 0; i < str.length; i++) {
 76             poker[index++] = str[i]+num[j];
 77             }
 78         }
 79         
 80         System.out.println("组合牌:");
 81         printPoker(poker);
 82         return poker;
 83     }
 84 
 85     /**
 86      * 输出牌
 87      * @param poker
 88      */
 89     public static void printPoker(String[] poker) {
 90         for (int i = 0; i < poker.length; i++) {
 91             System.out.print(poker[i]+" ");
 92             if((i+1)%6 ==0 ) {
 93             System.out.println();
 94             }
 95         }
 96         System.out.println();
 97         System.out.println("----------------------------");
 98     }
 99 
100     
101     
102     /**
103      * 打乱牌序
104      * @param str
105      * @return
106      */
107     public static String[] breakPoker(String[] str) {
108         String[] poker = str;
109         for (int i = 0; i < poker.length; i++) {
110             int index = (int) (Math.random()*54);
111             int index1 = (int) (Math.random()*54);
112             if(index != index1) {
113                 String temp = poker[index];
114                 poker[index] = poker[index1];
115                 poker[index1] = temp;
116             }
117         }
118         
119         System.out.println("打散后的牌:");
120         printPoker(poker);
121         return poker;
122     }
123     
124     public static int flag() {
125         int index = (int) (Math.random()*3+1);
126         int flag = 0;
127         if(index == 1) {
128             flag = 1;
129         }
130         if(index == 2) {
131             flag = 2;
132         }
133         if(index == 3) {
134             flag = 3;
135         }
136         return flag;
137     }
138     
139 
140     
141     /**
142      * 输出地主多余的3张牌
143      * @param str
144      */
145     public static void printDz(String[] str) {
146         System.out.print(str[str.length-3]+" "+str[str.length-2]+" "+str[str.length-1]);
147     }
148     
149     /**
150      * 发牌(地主多三张)
151      * @param str
152      * @param player
153      */
154     public static void handoutPoker(String[] str,String[] player,int flag) {
155         
156         //String[] player1Poker = new String[(str.length-3)/3];
157         
158         if(flag == 1) {
159             System.out.print("地主"+player[0]+"的牌是:");
160         }else {
161             System.out.print(player[0]+"的牌是:");
162             }
163         for (int i = 0; i < str.length-3; i++) {
164             
165             if(i%3==0) {
166                 System.out.print(str[i]+" ");
167             }
168         }
169         if(flag == 1) {
170             printDz(str);
171         }
172     
173         
174         System.out.println();
175         if(flag == 2) {
176             System.out.print("地主"+player[1]+"的牌是:");
177         }else {
178             System.out.print(player[1]+"的牌是:");
179             }
180         for (int i = 0; i < str.length-3; i++) {
181             
182             if(i%3==01) {
183                 System.out.print(str[i]+" ");
184             }
185         }
186         if(flag == 2) {
187             printDz(str);
188         }
189         
190         
191         System.out.println();
192         if(flag == 3) {
193             System.out.print("地主"+player[2]+"的牌是:");
194         }else {
195             System.out.print(player[2]+"的牌是:");
196             }
197         for (int i = 0; i < str.length-3; i++) {
198             
199             if(i%3==2) {
200                 System.out.print(str[i]+" ");
201             }
202         }
203         if(flag == 3) {
204             printDz(str);
205         }
206     }
207 }

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=b97rhcstndk2

原文地址:https://www.cnblogs.com/jliu-l/p/13258898.html