黑马程序员技术交流社区

标题: 分享: 匹配字符串题目 [打印本页]

作者: Fate_stay    时间: 2016-9-25 22:40
标题: 分享: 匹配字符串题目
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

/**
*
* 验证码小程序,要求如下:
* 1. 随机生成4个A-Z(包含A和Z)的字符,将随机获取的4个字符拼接成字符串作为验证码
* 2.键盘录入一个字符串,将字符串和验证码进行匹配(最多可以匹配3次),如内容一致则在控制台打印输出"验证成功"并结束程序,如内容不一致且未达到最高的匹配次数,
* 则继续输入字符串进行匹配,如内容不一致且已达到最高的匹配次数,在控制台提示"你输入验证次数达到3次,请明天再输入!",并将之前输入过的字符串全部打印输出,
* 结束程序
*/
public class Prictice1 {
        // 定义常量,用来存储次数
        static int temp = 0;
        public static void main(String[] args) {
               
                Random r = new Random();
                // 创建一个字符数组,用来存随机生成的验证码
                char[] ch_arr = new char[4];
                for(int i = 0 ; i < 4; i++) {
                        int zimu = 65 + r.nextInt(26);
                        char c = (char)zimu;
                        ch_arr[i] = c;
                }
                // 将字符数组 转变为 字符串
                String str = new String(ch_arr);
                System.out.println("验证码是:"+ str);
                // 创建Scanner对象
                Scanner sc = new Scanner(System.in);
                String user_in = sc.next();
               
                checkNum(user_in, str, sc);
               
        }
        // 验证用户输入的字符串 与 验证码 是否匹配
        private static void checkNum(String user_in, String str, Scanner sc) {
               
                // 创建一个集合,用来存历史记录
                ArrayList<String> list = new ArrayList<>();
                while(temp <= 2) {
                        if(user_in.equals(str)) {
                                System.out.println("验证成功!");
                                break;
                        } else if (temp == 2) {
                                list.add(user_in);
                                System.out.println("你输入验证次数达到3次,请明天再输入!");
                                System.out.print("您曾输入的字符串"+list);
                                break;
                        } else {
                                temp++;
                                list.add(user_in);
                                System.out.println("请继续输入:"+"您还有"+(3-temp)+"次");
                                // 覆盖,上一次用户输入的内容
                                user_in = sc.next();
                        }
                }
        }

}



作者: 737371444    时间: 2016-9-25 23:05
感谢分享,感谢分享,大哥辛苦了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2