黑马程序员技术交流社区

标题: 注册新用户 _小程序 [打印本页]

作者: 坏坏坏男孩    时间: 2016-8-8 22:02
标题: 注册新用户 _小程序
package com.heima;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class 注册新用户 {
/*
* 需求:为用户制定一个注册的代码
* 分析:
* 键盘录入一个用户名,规则和字母数字组成,数字不能开头共有5-15位,用正则判断
* 如果符合规则则 ,然后对集合里面的键值集合进行判断看是否已经有了,如果有了则提示已经被注册,
*否则 就提示输入密码,
*然后在提示确认密码,然后和第一次的密码相比较,如果相等就存入,否则提示重新输入,
* 然后就把用户名作为键值密码作为值放在一个map集合里面因为不需要排序所以hashmap就可以.
*
*
*/
        public static void main(String[] args) throws IOException {
                        //建立集合
                HashMap<String, String> hm =new HashMap<>();
                BufferedWriter bw =new BufferedWriter(new FileWriter("yyy.txt",true) );
                //键盘录入用户名并提示命名规则
                        Scanner sc  =new Scanner(System.in);
                        //提示
                        System.out.println("请输入用户名,命名规则:由5-15位的数字和字母组成,数字不能开头");
                a:        while(true){
                        String name =sc.nextLine();
                        //先判断是否存在,就是把文件里面的数据读出来.放到集合面,
                        BufferedReader br =new BufferedReader(new FileReader("yyy.txt"));
                                String b;
                                while ((b=br.readLine())!=null) {
                                String [] arr=b.split(",");
                                for (int i = 0; i < arr.length; i++) {
                                        hm.put(arr[0], arr[1]);
                                        }
                                }
                                br.close();
                                //然后对集合进行遍历
                                Set<String> set = hm.keySet();
                        //正则判断:
                                String regex ="[A-Za-z][A-Za-z0-9]{4,14}";
                        if(!name.matches(regex)){
                                System.out.println("输入的用户名不符合规则,请重新输入!");
                                }else {
                                        //判断用户名是否存在!
                                        if (hm.containsKey(name)) {
                                                System.out.println("该用户名已经被注册,请重新输入!");
                                        }else{
                                                //如果符合规则就提示输入密码!
                                        while(true){
                                        System.out.println("请输入密码:");
                                        String passworld = sc.nextLine();
                                        System.out.println("请再次确认输入的密码:");
                                        String passworld1 = sc.nextLine();
                                                if (!passworld.equals(passworld1)) {
                                                                System.out.println("输入的密码不一致请重新输入密码!");
                                                        }else {
                                                                //写入一个文档
                                                                bw.write(name+",");
                                                                bw.write(passworld);
                                                                bw.newLine();
                                                                bw.close();
                                                                break a ;
                                                                        }
                                                        }
                                                }
                                        }
                               
                        }
                }
                               
}





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