在a-z,A-Z,0-9这些数字和字母中, 随机取出四个作为验证码, 并在控制台上打印出来。
1 //第一种做法 char数组 2 char jh[]=new char[62];//存放验证码字符集合 3 //存入0-9 4 for(int i=0;i<=9;i++){ 5 int num=i+48;//数字0在字符集中对应的数字是48 6 char sz=(char)num; 7 jh[i]=sz; 8 } 9 //存入a-z 10 for(int i=10;i<=35;i++){ 11 int num=i+87;//字母a 在字符集中对应的数字是97 12 char zm=(char)num; 13 jh[i]=zm; 14 } 15 //存入A-Z 16 for(int i=36;i<62;i++){ 17 int num=i+29;//字符A 在字符集中对应的数字是65 18 char ZM=(char)num; 19 jh[i]=ZM; 20 } 21 int sy1[]=new int[4]; 22 Random r1=new Random(); 23 for(int i=0;i<4;i++){ 24 sy1[i]=r1.nextInt(62); 25 } 26 System.out.print("请按大小写输入验证码:"); 27 for(int i=0;i<4;i++){ 28 System.out.print(jh[sy1[i]]+" "); 29 }
1 // 第二种做法 2 // 将a-z A-Z 0-9 随机全部输入字符串str中 3 String str = "QWERTYUIOPASDFGHJKLZXCVBNM1234567890mnbvcxzasdfghjklpoiuytrewq"; 4 Scanner sc = new Scanner(System.in); 5 for (int i = 1; i <=3; i++) { 6 String yam = ""; 7 int sy2[] = new int[4]; 8 Random r2 = new Random(); 9 for (int j = 0; j < 4; j++) { 10 sy2[j] = r2.nextInt(62); 11 yam = yam + str.substring(sy2[j], sy2[j] + 1); 12 } 13 System.out.println("验证码:" + yam); 14 System.out.print("请输入验证码:"); 15 String str1 = sc.next(); 16 if (str1.equals(yam)) { 17 System.out.println("恭喜你 验证成功!"); 18 break; 19 } else if (3 - i != 0) { 20 System.out.println("验证失败,请重新输入。你还有" + (3-i) + "次机会输入"); 21 } else { 22 System.out.println("验证失败,请稍后重新尝试!"); 23 } 24 25 }
两种算法 运行后的结果:
二分法查找数组中的数:
1 //输入开始结束的数字 递增排列 在数组中 2 Scanner sc3=new Scanner (System.in); 3 System.out.print("请输入数列开始的数字:"); 4 int num1=sc3.nextInt(); 5 System.out.print("请输入数列结束的数字:"); 6 int num2=sc3.nextInt(); 7 int length=num2-num1+1; 8 int arr[]=new int[length]; 9 for(int i=0;i<length;i++){ 10 arr[i]=i+num1; 11 System.out.print(arr[i]+" "); 12 } 13 //输入任意一个要查找的数字 进行查找 14 System.out.print(" 请输入查找的数字:"); 15 int num3=sc3.nextInt(); 16 int index=-1; 17 int start=0; 18 int end=length-1; 19 int middle; 20 while(start<=end){ 21 middle=(start+end)/2; 22 23 if(arr[middle]==num3){ 24 index=middle; 25 break; 26 } 27 if(arr[middle]<num3){ 28 start=middle+1; 29 } 30 if(arr[middle]>num3){ 31 end=middle-1; 32 } 33 } 34 if(index==-1){ 35 System.out.println("查找的数字不在数列中!"); 36 }else{ 37 System.out.println("查找成功,数字"+num3+"在数列中的索引是"+index+",第"+(index+1)+"个数。"); 38 }
运行结果: