-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathExercise.java
2136 lines (2096 loc) · 75.6 KB
/
Exercise.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/**
目录--------------------------------------------------------------------------
* Exercise3_21: 判断输入日期为星期几
* Exercise3_22: 判断输入字符是否在半径为10,圆心为(0,0)的圆内
* Exercise5_33: 输出10000以内的所有完全数,其所有真因子之和为其本身
* Exercise5_34: 同电脑玩剪刀石头布,输入相关数字,输出与电脑的胜负
* Exercise6_1: 输出对整,使得输出整数以6个单位间隔输出
* Exercise6_13: 输出对整,使得输出小数以相同间隔制表性输出
* Exercise7_21: 豆机,梅花瓶,高尔顿瓶,输入球的个数,机器的槽数,输出球分布情况
* Exercise7_23: 设置100个柜子,平方数的柜子为关,并输出关闭的柜子号数
* Exercise7_28: 输入十个数字,输出这十个数字的所有组合情况
* Exercise8_14: 输入维度,自动生成矩阵,并判断矩阵特殊行列的个数,以及特殊对角线的个数
* Exercise8_4_3: 创建雇员类,并按工作时间长短输出雇员工作时间信息
* Exercise9_12: 创建判断类,输入四个点,判断每两个点形成线段是否相交
* Exercise10_7: 创建存储机类,完成提款机相关操作
* Exercise10_25: 创建字符串分割类,完成另类分割
* Exercise10_25_1: 重构新的split方法,完成另类分割
* Exercise11_3: 创建更为完善的存储机类,完成存储操作
* Exercise11_9: 输入矩阵维度,自动生成矩阵,并输出其最多1的行以及列的下标
* Exercise11_13: 创建特殊的删除方法,去掉输入的十个数字的重复项
* Exercise12_3: 创建判断数组越界方法,数组越界方法,处理抛出异常
* Exercise12_5: 以三条边创建三角形,同时创建异常抛出处理类处理异常
* Exercise12_12: 复制文件内容到自创文件中
* Exercise14_2: 创建可视化井字棋,电脑自动操作
* Exercise14_3: 随机可视化显示三张扑克牌
* Exercise14_6: 可视化设置斑马格子棋盘
* Exercise14_9: 可视化生成四个风扇
* Exercise14_10: 可视化生成圆柱主视图
* Exercise14_15: 可视化生成STOP警告牌
* Exercise14_16: 可视化生成彩色方框线
* Exercise15_1: 创建换牌操作,可视化换扑克牌
* Exercise15_3: 创建球类,创建动作,可视化操作球的运动
* Exercise15_4: 创建加减乘除类,可视化完成简单计算机操作
* Exercise15_29: 创建内部车运动类,可视化循环运动的汽车
* Exercise17_3: 创建特殊文件,完成写入输出操作
* Exercise17_5: 创建特殊文件,以捕捉异常方式写入操作
* Exercise17_6_1: 简单外部接口类操作
* Exercise17_7: 捕获异常处理使用外部类
* Exercise17_10: 文件拆分储存操作
* Exercise17_12: 文件整合储存操作
* Exercise_free: 可视化数据分析图
*/
/**Exercise3_21: 判断输入日期为星期几**/
//import java.util.Scanner;
//public class Exercise{
// public static void main(String[] args){
// Scanner sc = new Scanner(System.in);
// int year,month,day,h;
// String input = "";
// System.out.print("Enter year: (e.g., 2012): ");
// year = sc.nextInt();
// System.out.print("Enter month: 1-12: ");
// month = sc.nextInt();
// System.out.print("Enter the day of the month: 1-31: ");
// day = sc.nextInt();
// if(month == 1 || month == 2){
// month+=12;
// year-=1;
// }
// // 基姆拉尔森计算公式
// h = (day + 1 + 2*month + 3*(month+1)/5 + year + year/4 - year/100 + year/400) % 7;
// switch (h){
// case 0:input = "Sunday"; break;
// case 1:input = "Monday"; break;
// case 2:input = "Tuesday"; break;
// case 3:input = "Wednesday"; break;
// case 4:input = "Thursday"; break;
// case 5:input = "Friday"; break;
// case 6:input = "Saturday"; break;
// }
// System.out.print("Day of the week is " + input);
// }
//}
/**Exercise3_22: 判断输入字符是否在半径为10,圆心为(0,0)的圆内**/
//import java.util.Scanner;
//public class Exercise {
// public static void main(String[] args){
// Scanner sc = new Scanner(System.in);
// double x,y,z;
// System.out.print("Enter a point with two coordinates: ");
// x = sc.nextDouble();
// y = sc.nextDouble();
// z = x*x + y*y;
// if(z <= 100){
// System.out.println("Point (" + x + "," + y + ") is in the circle");
// }
// else{
// System.out.println("Point (" + x + "," + y + ") is not in the circle");
// }
//
// }
//}
/**Exercise5_33: 输出10000以内的所有完全数,其所有真因子之和为其本身**/
//public class Exercise {
// public static void main(String[] args) {
// int i, k;
// k = 0;
// System.out.print("10000以内的完全数有:");
// for (i = 6; i <= 10000 && k <= 4; i++) {
// if (beau(i) == 1)
// System.out.print(i+" ");
// }
// }
//
// public static int beau(int num){
// int sum = 0,h = 0;
// for(int a=1;a<num;a++) {
// if(num % a == 0)
// sum += a;
// }
// if(sum == num)
// h = 1;
// return h;
// }
//}
/**Exercise5_34: 同电脑玩剪刀石头布,输入相关数字,输出与电脑的胜负**/
//import java.util.Scanner;
//public class Exercise{
// public static void main(String[] args) {
// int use_num=0,com_num=0;
// while(use_num<=2&&com_num<=2){
// System.out.print("scissor(0),rock(1),paper(2): ");
// Scanner sc = new Scanner(System.in);
// int use, com = (int) (Math.random() * 3);
// use = sc.nextInt();
// System.out.print("The computer is " + guess(com) + ". You are " + guess(use));
// if (use == com) {
// System.out.println(" too. It is a draw");
// } else if ((use == 0 && com == 2) || (use == 1 && com == 0) || (use == 2 && com == 1)) {
// System.out.println(". You won");
// use_num+=1;
// } else {
// System.out.println(". You loses");
// com_num+=1;
// }
// }
// System.out.println("\nThe game is over!");
// System.out.printf("You won %d times\n",use_num);
// System.out.printf("Computer won %d times\n",com_num);
// }
// public static String guess(int num){
// switch (num) {
// case 0:
// return "scissor";
// case 1:
// return "rock";
// case 2:
// return "paper";
// default:
// return "";
// }
// }
//}
/**Exercise6_1: 输出对整,使得输出整数以6个单位间隔输出**/
//public class Exercise{
// public static void main(String[] args) {
// int i = 1;
// for(i = 1;i<=100;i++){
// System.out.printf("%6d",getPentagonalNumber(i));
// if(i%10==0){
// System.out.println("\n");
// }
// }
// }
// public static int getPentagonalNumber(int n){
// return n*(3*n-1)/2;
// }
//}
/**Exercise6_13: 输出对整,使得输出小数以相同间隔制表性输出**/
//public class Exercise{
// public static void main(String[] args) {
// System.out.println("i"+" "+"m(i)");
// System.out.println("----------------");
// for(int i=1;i<=20;i++){
// System.out.printf("%-3d%13.4f\n",i,sum_add(i));
// }
// }
// public static double sum_add(int n){
// double add=0;
// for(double i=1;i<=n;i++){
// add+=i/(i+1);
// }
// return add;
// }
//}
/**Exercise7_21: 豆机,梅花瓶,高尔顿瓶,输入球的个数,机器的槽数,输出球分布情况**/
//import java.util.Scanner;
//public class Exercise{
// public static void main(String[] args) {
// Scanner sc = new Scanner(System.in);
// System.out.print("Enter the number of balls to drop: ");
// int num1 = sc.nextInt();
// System.out.print("Enter the number of slots in the bean machine: ");
// int num2 = sc.nextInt();
// int[] num = new int[num1];
// int[] slots = new int[num2];
// int i,j;
// for(i=0;i<num1;i++){
// num[i]=9;
// }
// for(i=0;i<num2;i++){
// slots[i]=0;
// }
// for(i=0;i<num1;i++){
// for(j=0;j<num2-1;j++){
// int balls = (int) (Math.random() * 2);
// if(balls == 1){
// System.out.print("R");
// num[i]+=1;
// }
// else{
// System.out.print("L");
// num[i]-=1;
// }
// if(j==num2-2){
// System.out.println("");
// }
// }
// }
// for(i=0;i<num1;i++){
// num[i]=num[i]/2-1;
// }
// for(i=0;i<num1;i++){
// slots[num[i]]+=1;
// }
// for(i=num1;i>0;i--){
// for(j=0;j<num2;j++){
// if(slots[j]==i){
// System.out.print("O");
// slots[j]-=1;
// }
// else
// System.out.print(" ");
// }
// System.out.println("");
// }
// }
//}
/**Exercise7_23: 设置100个柜子,平方数的柜子为关,并输出关闭的柜子号数**/
//public class Exercise{
// public static void main(String[] args) {
// boolean gui[] = new boolean[100];
// int i,j;
// for(i=0;i<100;i++){
// gui[i]=true;
// }
// for(i=1;i<100;i++){
// for(j=i;j<100;j++){
// if((j+1)%(i+1)==0){
// if(gui[j])
// gui[j]=false;
// else
// gui[j]=true;
// }
// }
// }
// System.out.print("被关闭柜子的号数:");
// for(i=0;i<100;i++){
// if(gui[i])
// System.out.printf((i+1)+" ");
// }
// }
//}
/**Exercise7_28: 输入十个数字,输出这十个数字的所有组合情况**/
//import java.util.Scanner;
//public class Exercise{
// public static void main(String[] args) {
// Scanner sc = new Scanner(System.in);
// System.out.print("请输入十个整数:");
// int shuzi[]=new int[10];
// int i,j,k=0;
// for(i=0;i<10;i++){
// shuzi[i]=sc.nextInt();
// }
// System.out.println("其所有组合情况为:");
// for (i=0;i<10;i++){
// for (j=0;j<10;j++){
// System.out.print(shuzi[i]);
// System.out.print(shuzi[j]+" ");
// if(j==9){
// System.out.println("");
// }
// }
// }
// }
//}
/**Exercise8_14: 输入维度,自动生成矩阵,并判断矩阵特殊行列的个数,以及特殊对角线的个数**/
//import java.util.Scanner;
//public class Exercise{
// public static void main(String[] args) {
// Scanner sc = new Scanner(System.in);
// int i,j,sum1=0,sum2=0,sum3=0,sum4=0;
// System.out.print("Enter the size for the matrix: ");
// int num = sc.nextInt();
// int tongji[]={0,0};
// int chucun[]=new int[num*2+2];
// int shu[][]=new int[num][num];
// String yuju;
// for (i=0;i<num;i++){
// for (j=0;j<num;j++){
// shu[i][j]=(int) (Math.random() * 2);
// }
// }
// for (i=0;i<num;i++){
// for (j=0;j<num;j++){
// System.out.print(shu[i][j]);
// sum1+=shu[i][j];
// sum2+=shu[j][i];
// if (j==num-1) {
// System.out.println("");
// }
// }
// sum3+=shu[i][i];
// sum4+=shu[i][num-i-1];
// chucun[i]=sum1;
// chucun[num+i]=sum2;
// sum1=0;
// sum2=0;
// }
// chucun[num*2]=sum3;
// chucun[num*2+1]=sum4;
// for (i=0;i<num;i++){
// yuju="All 0s on row ";
// if (chucun[i]==0){
// System.out.println(yuju+i);
// tongji[0]+=1;
// }
// yuju="All 1s on row ";
// if (chucun[i]==num){
// System.out.println(yuju+i);
// tongji[0]+=1;
// }
// }
// yuju="No same numbers on a row";
// if (tongji[0]==0){
// System.out.println(yuju);
// }
// for (i=num;i<num*2;i++){
// yuju="All 0s on column ";
// if (chucun[i]==0){
// System.out.println(yuju+(i-num));
// tongji[1]+=1;
// }
// yuju="All 1s on column ";
// if (chucun[i]==num){
// System.out.println(yuju+(i-num));
// tongji[1]+=1;
// }
// }
// yuju="No same numbers on a column";
// if (tongji[1]==0){
// System.out.println(yuju);
// }
// if (chucun[num*2]==0){
// System.out.println("All 0s on the major diagonal");
// }
// else if (chucun[num*2]==num){
// System.out.println("All 1s on the major diagonal");
// }
// else{
// System.out.println("No same numbers on the major diagonal");
// }
// if (chucun[num*2+1]==0){
// System.out.println("All 0s on the sub-diagonal");
// }
// else if (chucun[num*2+1]==num){
// System.out.println("All 1s on the sub-diagonal");
// }
// else{
// System.out.println("No same numbers on the sub-diagonal");
// }
//
// }
//}
/**Exercise8_4_3: 创建雇员类,并按工作时间长短输出雇员工作时间信息**/
//public class Exercise{
// public static void main(String[] args) {
// int[][] num={{2,4,3,4,5,8,8},{7,3,4,3,3,4,4},
// {3,3,4,3,3,2,2},{9,3,4,7,3,4,1},
// {3,5,4,3,6,3,4,4},{3,4,4,6,3,4,4},
// {3,7,4,8,3,8,4},{6,3,5,9,2,7,9}
// };
// java.lang.String[] eum = {"Emplouee0","Emplouee1","Emplouee2","Emplouee3","Emplouee4","Emplouee5","Emplouee6","Emplouee7",};
// ComparebleEmplouee[] di=new ComparebleEmplouee[num.length];
// for (int i=0;i<num.length;i++) {
// di[i] = new ComparebleEmplouee(eum[i], num[i]);
// }
// java.util.Arrays.sort(di);
// for (ComparebleEmplouee people : di){
// System.out.println(people.toString());
// }
//
// }
//}
//class Employer{
// java.lang.String Employ;
// int[] time = new int[7];
// int sum=0;
// Employer(java.lang.String Em,int[] Ti){
// Employ = Em;
// for (int i=0;i<7;i++){
// time[i]=Ti[i];
// sum+=Ti[i];
// }
// }
// public int getSum(){
// return sum;
// }
//}
//class ComparebleEmplouee extends Employer implements Comparable<ComparebleEmplouee>{
// public ComparebleEmplouee(java.lang.String Em,int[] Ti){
// super(Em, Ti);
// }
// @Override
// public int compareTo(ComparebleEmplouee o){
// if (getSum()>o.getSum())
// return 1;
// else if (getSum()<o.getSum())
// return -1;
// else
// return 0;
// }
// public String toString(){
// return Employ +" "+ getSum() +" "+ time[0] +" "+ time[1] +" "+ time[2] +" "+ time[3] +" "+ time[4] +" "+ time[5] +" "+ time[6];
// }
//}
/**Exercise9_12: 创建判断类,输入四个点,判断每两个点形成线段是否相交**/
//import java.util.Scanner;
//public class Exercise {
// public static void main(String[] args) {
// Scanner sc = new Scanner(System.in);
// System.out.print("Enter x1,y1,x2,y2,x3,y3,x4,y4: ");
// double x1 = sc.nextDouble();
// double y1 = sc.nextDouble();
// double x2 = sc.nextDouble();
// double y2 = sc.nextDouble();
// double x3 = sc.nextDouble();
// double y3 = sc.nextDouble();
// double x4 = sc.nextDouble();
// double y4 = sc.nextDouble();
// LinearEquation di = new LinearEquation(x1,y1,x2,y2,x3,y3,x4,y4);
// di.function();
// }
//}
//class LinearEquation{
// double x1,x2,y1,y2,x3,y3,x4,y4;
// LinearEquation(double x1,double y1,double x2,double y2,double x3,double y3,double x4,double y4){
// this.x1=x1;
// this.x2=x2;
// this.y1=y1;
// this.y2=y2;
// this.x3=x3;
// this.y3=y3;
// this.x4=x4;
// this.y4=y4;
// }
// void function(){
// double a1,b1,c1,a2,b2,c2,jie;
// double[] jieda = new double[2];
// a1 = y1-y2;
// b1 = x1-x2;
// c1 = (y1-y2)*x1-(x1-x2)*y1;
// a2 = y3-y4;
// b2 = x3-x4;
// c2 = (y3-y4)*x3-(x3-x4)*y3;
// jie = a1*b2-b1*a2;
// if (x1==x3&&x2==x4&&y1==y3&&y2==y4){
// System.out.println("The two lines are coincidence");
// }
// else if (jie == 0){
// System.out.println("The two lines are parallel");
// }
// else if (jie!=0){
// jieda[0] = (c1*b2-c2*b1)/jie;
// jieda[1] = (a1*c2-a2*c1)/jie;
// System.out.printf("The intersecting point is at (%.5f,%.5f)",jieda[0],jieda[1]);
// }
// }
//}
/**Exercise10_7: 创建存储机类,完成提款机相关操作**/
//import java.util.Scanner;
//public class Exercise{
// public static void main(String[] args) {
// Accout di[] = new Accout[10];
// for (int i=0;i<10;i++){
// di[i] = new Accout(i);
// } //创建十个账户,id分别为0-9
// Scanner sc = new Scanner(System.in);
// while(true) {
// System.out.print("Enter an id: ");
// int id = sc.nextInt(); //输入id选择
// System.out.println(""); //美观
// double money;
// if (id > 9 || id < 0) {
// System.out.println("The id is error"); //id错误识别
// System.out.println(""); //美观
// }
// else {
// label1:while(true) { //label1为跳转位置
// // 菜单
// System.out.println("Main menu\n1:check balance\n2:withdraw\n3:deposit\n4:exit\n");
// System.out.print("Enter a choice: ");
// int num = sc.nextInt(); //输入菜单选择
// System.out.println(""); //美观
// if (num>4||num<0){
// System.out.println("Wrong input, please select again\n");
// continue; //菜单输入错误识别
// }
// switch (num) {
// case 1:
// System.out.println(""); //美观
// di[id].yuer(); //显示余额
// break;
// case 2:
// System.out.print("Enter amount: "); //输入所取金额
// money = sc.nextDouble();
// System.out.println(""); //美观
// di[id].quqian(money); //显示所取金额,显示余额
// break;
// case 3:
// System.out.print("Enter amount: "); //输入所存金额
// money = sc.nextDouble();
// System.out.println(""); //美观
// di[id].cuqian(money); //显示所存金额,显示余额
// break;
// case 4:
// break label1; //跳转至第一个大循环,重新输入id
// }
// }
// }
// }
//
// }
//}
//class Accout{
// private int id=0; //默认id=0
// private double balance=100; //默认储蓄为100
// Accout(){
//
// } //无输入,默认创建账户0
// Accout(int id){
// this.id=id;
// } //输入id,创建账户id
// void yuer(){ //查询余额
// System.out.println("You balance are : "+balance+"\n");
// }
// void quqian(double money){ //取钱
// balance-=money;
// System.out.println("Please keep your money: "+money);
// System.out.println("You balance are : "+balance+"\n");
// }
// void cuqian(double money){ //存钱
// balance+=money;
// System.out.println("Your deposit is: "+money);
// System.out.println("You balance are : "+balance+"\n");
// }
//
//}
/**Exercise10_25: 创建字符串分割类,完成另类分割**/
//import java.util.Arrays;
//import java.util.Scanner;
//public class Exercise {
// public static void main(String[] args) {
// Scanner sc = new Scanner(System.in);
// System.out.print("输入待分割字符串:");
// String s = sc.nextLine();
// System.out.print("输入分割判断字符串:");
// String regex = sc.nextLine();
// split split = new split(s , regex); //新split
// String[] ss = split.splitComplete();
// for (String sd:ss){ //展示
// System.out.print(sd+" ");
// }
// }
//}
//class split{
// String str,str1;
// split(String str,String str1){
// this.str=str; //待剪切字符串
// this.str1=str1; //剪切判断字符串
// }
// String[] splitComplete() {
// int count = 0;
// int[] position_1 = new int[str.length()];
// String[] str_1 = str.split(str1);
// // 如下循环是将截切判断字符串的位置储存在数组position_1中
// for (int i = 0; i < str1.length(); i++) {
// if (str.indexOf(str1.charAt(i)) == -1)
// continue;
// else {
// for (int k = 0; k < str.length(); k++) {
// if (str.charAt(k) == str1.charAt(i)) {
// position_1[count]=k;
// count+=1;
// }
// }
// }
// }
// int[] position = new int[count];
// for (int i = 0; i < count; i++) {
// position[i] = position_1[i];
// } //去除数组中的null,产生刚好完全的数组position
// Arrays.sort(position); //排序,为了方便之后的提取
// String[] come = new String[position.length+str_1.length];
// int num1=0,num2=0,num3=0;
// //num1为come的索引使用,num2为position的索引使用,num3为str_1的索引使用
// for (int l=0;l<str.length();l++){
// if (position[num2]==l){
// come[num1]=Character.toString(str.charAt(l));
// if (num2!=(position.length-1)){
// num2++;
// } //避免if判断时数组越界
// num1++;
// }
// else{
// //此if是解决原始split对于字符串第一字符为切割符,以及切割连续时产生的空字符
// if (str_1[num3].length()!=0) {
// come[num1] = str_1[num3];
// num1++;
// } //空字符的不储存
// l = l + str_1[num3].length() - 1; //提取后,l跟随增加,到下一个提取点
// num3++;
// }
// }
// int count1=0;
// //如下操作去除数组中的null,产生刚好完全的数组come_complete
// for (int j=0;j<come.length;j++){
// if (come[j]==null)
// break;
// count1++;
// }
// String[] come_complete = new String[count1];
// for (int j=0;j<count1;j++){
// come_complete[j]=come[j];
// }
// return come_complete;
// }
//}
/**Exercise10_25_1: 重构新的split方法,完成另类分割**/
//import java.util.Scanner;
//public class Exercise{
// public static void main(String[] args){
// Scanner sc = new Scanner(System.in);
// System.out.print("输入待分割字符串:");
// String s = sc.nextLine();
// System.out.print("输入分割判断字符串:");
// String regex = sc.nextLine();
// String[] split = split(s , regex);
// for(int i = 0; i < split.length; i ++){
// System.out.print(split[i] + " ");
// }
// }
// public static String[] split(String s, String regex){
// String[] StringArray = s.split(regex);
// String[] split = new String[StringArray.length + StringArray.length - 1];
// int count = 0;
// for(int i = 0; i < StringArray.length - 1; i ++){
// count = count + StringArray[i].length();
// split[2 * (i + 1) - 2] = StringArray[i];
// split[2 * (i + 1) - 1] = s.substring(count , count + 1);
// count ++;
// }
// split[split.length - 1] = StringArray[StringArray.length - 1];
// return split;
// }
//}
/**Exercise11_3: 创建更为完善的存储机类,完成存储操作**/
//import java.util.Date;
//public class Exercise {
// public static void main(String[] args) {
// Account man1=new Account(003,10000,0.04);
// savingAccount man2=new savingAccount(004,10000,0.01);
// checkingAccount man3=new checkingAccount(005,100,0.05);
// System.out.println(man1.toString());
// System.out.println(man2.toString());
// System.out.println(man3.toString());
// }
//}
//class Account{
// int id=001;
//
// public int getId() {
// return id;
// }
//
// public void setId(int id) {
// this.id = id;
// }
//
// public double getRate() {
// return rate;
// }
//
// public void setRate(double rate) {
// this.rate = rate;
// }
//
// public double getBalance() {
// return balance;
// }
//
// public void setBalance(double balance) {
// this.balance = balance;
// }
//
// double balance=0;
// double rate=0.03;
//
// public Date getDate() {
// return date;
// }
//
// public void setDate(Date date) {
// this.date = date;
// }
//
// java.util.Date date;
// public Account(){
// date = new java.util.Date();
// }
// public Account(int id,double balance,double rate){
// this.id=id;
// this.balance=balance;
// this.rate=rate;
// date=new java.util.Date();
// }
// public void deposit(double cun){
// balance+=cun;
// }
// public void withdraw(double qu){
// balance-=qu;
// }
// public String toString(){
// return "尊敬的"+id+"号顾客,您的银行账户余额为:" + balance;
// }
//}
//class savingAccount extends Account{
// java.util.Date date;
// public savingAccount(){
// date=new java.util.Date();
// }
// public savingAccount(int id,double balance,double rate){
// super(id, balance, rate);
// }
// public void withdraw(double qu){
// if (balance<qu){
// System.out.println("抱歉,您的余额并不存在这么多钱。");
// }
// else{
// balance-=qu;
// }
// }
// public String toString(){
// return "尊敬的"+id+"号顾客,您的储蓄账户余额为:"+balance;
// }
//}
//class checkingAccount extends Account{
// java.util.Date date;
// public checkingAccount(){
// date=new java.util.Date();
// }
// public checkingAccount(int id,double balance,double rate){
// super(id, balance, rate);
// }
// public String toString(){
// return "尊敬的"+id+"号顾客,您的支票账户余额为:"+balance;
// }
//}
/**Exercise11_9: 输入矩阵维度,自动生成矩阵,并输出其最多1的行以及列的下标**/
//import java.util.*;
//public class Exercise {
// public static void main(String[] args) {
// Scanner sc = new Scanner(System.in);
// System.out.print("Enter the array size n: ");
// int num=sc.nextInt();
// ArrayList<Integer> row=new ArrayList<>();
// ArrayList<Integer> column=new ArrayList<>();
// int row1,column1;
// int[][] ran=new int[num][num];
//// 存放0,1
// for(int i=0;i<num;i++){
// for (int j=0;j<num;j++){
// ran[i][j]=(int) (Math.random()*2);
// }
// }
//// 输出0,1矩阵
// for (int i=0;i<num;i++){
// row1=0;
// column1=0;
// for (int j=0;j<num;j++){
// System.out.print(ran[i][j]);
// if (j==num-1){
// System.out.println("");
// }
// if (ran[i][j]==1){
// row1+=1;
// }
// if (ran[j][i]==1){
// column1+=1;
// }
// }
// row.add(row1);
// column.add(column1);
// }
//// 输出最多1的行列下标
// System.out.print("The largest row index: ");
// int num1=0;
// for (int i=0;i<num;i++){
// if (row.get(i)==Collections.max(row)){
// if (num1==0){
// System.out.print(i);
// }
// else {
// System.out.print(", "+i);
// }
// num1++;
// }
// }
// num1=0;
// System.out.println("");
// System.out.print("The largest column index: ");
// for (int i=0;i<num;i++){
// if (column.get(i)==Collections.max(column)){
// if (num1==0){
// System.out.print(i);
// }
// else {
// System.out.print(", "+i);
// }
// num1++;
// }
// }
// }
//}
/**Exercise11_13: 创建特殊的删除方法,去掉输入的十个数字的重复项**/
//import java.util.ArrayList;
//import java.util.Scanner;
//public class Exercise {
// public static void main(String[] args) {
// Scanner sc = new Scanner(System.in);
// System.out.print("Enter ten integers: ");
// ArrayList<Integer> list1=new ArrayList<>();
// for (int i=0;i<10;i++){
// list1.add(sc.nextInt());
// }
// removeDuplicate(list1);
// }
// public static void removeDuplicate(ArrayList<Integer> list){
// for (int i=0;i<list.size();i++){
// if (i!=list.lastIndexOf(list.get(i))){
// list.remove(list.lastIndexOf(list.get(i)));
// i--;
// }
// }
// System.out.print("The distinct integers are ");
// for (int i=0;i<list.size();i++){
// System.out.print(list.get(i)+" ");
// }
// }
//}
/**Exercise12_3: 创建判断数组越界方法,数组越界方法,处理抛出异常**/
//import java.util.Scanner;
//public class Exercise {
// public static void main(String[] args) throws IndexOutOfBoundsException{
// int[] Random = new int[100];
// boolean donum=true;
// Scanner sc = new Scanner(System.in);
// for (int i=0;i<100;i++){
// Random[i] = (int) (Math.random()*100+1);
// }
// do {
// System.out.print("请输入数组索引: ");
// int num = sc.nextInt();
// try {
// System.out.println("对应查到的数是: " + getArrayValue(Random,num));
// }
// catch (RandomException ex) {
// if(ex.getNum() == -1)
// donum = false;
// else
// System.out.println(ex.getMessage());
//
// }
// }while (donum);
//
// }
// public static int getArrayValue(int[] data, int index) throws RandomException{
// if(index < 0 || index >= data.length)
// throw new RandomException("数组越界,请重新输入!",index);
// return data[index];
// }
//}
//class RandomException extends Exception{
// private int num;
// public RandomException(String message,int num){
// super(message);
// this.num=num;
// }
// public int getNum(){
// return num;
// }
//}
/**Exercise12_5: 以三条边创建三角形,同时创建异常抛出处理类处理异常**/
//import javax.print.DocFlavor;
//import java.lang.annotation.Target;
//import java.util.TreeMap;
//public class Exercise {
// public static void main(String[] args) throws IllegalTriangleException {
// try {
// Triangleset Triangle1 = new Triangleset(1.0, 1.0, 1.0);
// System.out.println(Triangle1.toString());
// Triangleset Triangle2 = new Triangleset(1.0, 1.0, 4.0);
// System.out.println(Triangle2.toString());
// }
// catch (IllegalTriangleException ex){
// System.out.println(ex.getMessage());
// System.out.println("错误三角形的三边分别为:"+ex.getSide1()+" "+ex.getSide2()+" "+ex.getSide3());
// }
//
//
// }
//}
//class Triangleset{
// public double side1,side2,side3;
// public Triangleset(){
// side1=1.0;
// side2=1.0;
// side3=1.0;
// }
// public Triangleset(double side1,double side2,double side3) throws IllegalTriangleException{
// if (side1+side2<=side3||side1+side3<=side2||side2+side3<=side1){
// throw new IllegalTriangleException("输入三角形三边值有误!",side1,side2,side3);
// }
// else {
// this.side1=side1;
// this.side2=side2;
// this.side3=side3;
// }
// }
// public String toString(){
// return "正确三角形三边分别为:" + side1 +" "+side2+" "+side3;
// }
//}
//class IllegalTriangleException extends Exception{
// public double side1;
//
// public double getSide1() {
// return side1;
// }
//
// public double getSide2() {
// return side2;
// }
//
// public double getSide3() {
// return side3;
// }
//
// public double side2;
// public double side3;
// public IllegalTriangleException(String message,double side1,double side2,double side3){
// super(message);
// this.side1=side1;
// this.side2=side2;
// this.side3=side3;
// }
//}
/**Exercise12_12: 复制文件内容到自创文件中**/
//import java.io.File;
//import java.io.PrintWriter;
//import java.util.Scanner;
//public class Exercise {
// public static void main(String[] args) throws Exception {
// File file1 = new File("Test.java");
// File file2 = new File("java Exercise12_12 Test.java");
// Scanner input = new Scanner(file1,"utf-8");
// PrintWriter output = new PrintWriter(file2);
// String name1="";