package com.heima;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class 用户登陆 {
/*
* 用户登录,首先提示输入用户名,
* 然后把文档里面的用户名读到集合里面
* 如果存在就提示输入密码,否则就提示用户名不存在!
* 如果密码和用户名一致,就输出"欢迎回来"
* 否则提示请重新输入密码!
*/
public static void main(String[] args) throws Exception {
int x =2;
HashMap<String, String> ha =new HashMap<>();
BufferedReader br1 =new BufferedReader(new FileReader("yyy.txt"));
//把文件里面的数据读到集合里面
String b;
while ((b=br1.readLine())!=null) {
String[]arr1=b.split(",");
for (int i = 0; i < arr1.length; i++) {
ha.put(arr1[0], arr1[1]);
}
}
br1.close();
//提示输入用户名
System.out.println("请输入用户名:");
Scanner sc =new Scanner(System.in);
while (true) {
String name1=sc.nextLine() ;
//判断用户名是否存在!应该用迭代器看看键值对里面是否包含该键值,包含的话在比较数值,和买菜一样
//获得键值的集合
Set<String> set = ha.keySet();
//看键值集合是否包含该用户名
if (!set.contains(name1)) {
//如果不包含则提示错误
System.out.println("用户名不存在!请重新输入:");
}else {
//如果包含就开始迭代
Iterator<String> it =set.iterator();
while(it.hasNext()){
//迭代之后拿到该键值
//String name2 =it.next();
//根据键值找到键值对应的数值
String passworld2 = ha.get(name1);
//提示输入密码,
System.out.println("请输入密码:");
String passworld =sc.nextLine();
if (passworld.equals(passworld2) ){
System.out.println("验证通过.欢迎回来!");
break;
}else {
//否则给三次输入机会,如果都不正确,则提示锁卡!
System.out.println("密码不正确,请重新输入:");
while (true) {
String passworld1 =sc.nextLine();
if (passworld1.equals(ha.get(name1))) {
System.out.println("验证通过.欢迎回来!");
break;
}else {
if (x>1) {
System.out.println("密码不正确,您还有"+--x+"次机会请重新输入:");
}else {
System.out.println("卡已被锁!");
break;
}
}
}
}
break;
}
break;
}
}
}
}
|
|