登录案例(JAVA)

news2024/11/20 16:25:34

练习1 

package lx2;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;

public class demo1 {
    /*
       需求:写一个登陆小案例。

       步骤:
           将正确的用户名和密码手动保存在本地的userinfo.txt文件中。
           保存格式为:username=zhangsan&password=123
           让用户键盘录入用户名和密码
                   比较用户录入的和正确的用户名密码是否一致
           如果一致则打印登陆成功
                   如果不一致则打印登陆失败
       */
    public static void main(String[] args) throws IOException {
        //读取文件中的数据并且添加到集合当中
        BufferedReader br = new BufferedReader(new FileReader("..\\day51\\src\\lx2\\userinfo.txt"));
        String line = br.readLine();
        ArrayList<String> list = new ArrayList<>();
        list.add(line);
        System.out.println(list);//[username=zhangsan&password=123]
        //我们现在要将list集合当中的数据进行拆分
        //第一次以&为分割
        String[] arr = line.split("&");
        //其实0索引是username=zhangsan 1索引是password=123
        //我们现在第二次以=分割 其中0索引是username 1索引是zhangsan ,0--->password=,1---->123
        String rightUsername = arr[0].split("=")[1];

        String rightPassword = arr[1].split("=")[1];
        System.out.println("请输入用户名");
        Scanner sc = new Scanner(System.in);
        String userName = sc.next();
        System.out.println("请输入密码");
        String password = sc.next();

        if (userName.equals(rightUsername) && password.equals(rightPassword)) {
            System.out.println("登陆成功");
        } else {
            System.out.println("登陆失败");
        }


    }
}

练习2

package lx2;

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;

/*
      需求:写一个登陆小案例(添加锁定账号功能)

      步骤:
          将正确的用户名和密码手动保存在本地的userinfo.txt文件中。
          保存格式为:username=zhangsan&password=123&count=0
          让用户键盘录入用户名和密码
          比较用户录入的和正确的用户名密码是否一致
          如果一致则打印登陆成功
          如果不一致则打印登陆失败,连续输错三次被锁定

      */
public class demo2 {
    public static void main(String[] args) throws IOException {
         //初始化数据
        writeInfo("username=zhangsan&password=123&count=0");
        //读取文件中的数据并且添加到集合当中
        BufferedReader br = new BufferedReader(new FileReader("..\\day51\\src\\lx2\\userinfo.txt"));
        String line = br.readLine();
        ArrayList<String> list = new ArrayList<>();
        //定义一个count,用来计算连续输错的次数
        int count = 0;
        list.add(line);
        System.out.println(list);//[username=zhangsan&password=123]
        //我们现在要将list集合当中的数据进行拆分
        //第一次以&为分割
        String[] arr = line.split("&");
        //其实0索引是username=zhangsan 1索引是password=123
        //我们现在第二次以=分割 其中0索引是username 1索引是zhangsan ,0--->password=,1---->123
        String rightUsername = arr[0].split("=")[1];

        String rightPassword = arr[1].split("=")[1];
        while (true) {
            System.out.println("请输入用户名");
            Scanner sc = new Scanner(System.in);
            String userName = sc.next();
            System.out.println("请输入密码");
            String password = sc.next();
            if (userName.equals(rightUsername) && password.equals(rightPassword) && count < 3) {
                System.out.println("登陆成功");
                //把数据写入到本地文件当中
               // username=zhangsan&password=123&count=0
                writeInfo("username=" + rightUsername + "&password=" + rightPassword + "&count=0");
                break;

            } else {
                count++;
                if (count < 3) {
                    System.out.println("登陆失败,还剩下" + (3 - count) + "次机会");
                } else {
                    System.out.println("用户账户被锁定");
                    return;
                }
                // username=zhangsan&password=123&count=3
                writeInfo("username=" + rightUsername + "&password=" + rightPassword + "&count=" + count);
            }
        }


    }


    /*
     * 作用:
     *       写出一个字符串到本地文件中
     * 参数:
     *       要写出的字符串
     * */

    private static void writeInfo(String s) throws IOException {
        BufferedWriter bw = new BufferedWriter(new FileWriter("..\\day51\\src\\lx2\\userinfo.txt"));
        bw.write(s);
        bw.flush();

        bw.close();
    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1954748.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hive环境搭建(内置数据库)

实验目的】 1) 了解hive的作用 2) 熟练hive的配置过程&#xff08;内置数据库&#xff09; 【实验原理】 Hive的架构是由Client、Metastore、Driver、Compiler构成&#xff0c;执行流程是编译器可以将一个Hive QL转换成操作符&#xff0c;操作符是Hive中的最小处理单元。…

【BUG】已解决:UnicodeDecodeError: ‘utf-8’ codec can’t decode bytes in position 10

UnicodeDecodeError: ‘utf-8’ codec can’t decode bytes in position 10 目录 UnicodeDecodeError: ‘utf-8’ codec can’t decode bytes in position 10 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#x…

torch fbgemm.dll 报错

这里写自定义目录标题 OSError: [WinError 126] The specified module could not be found. Error loading \"c:\\Users\\Noor\\anaconda3\\envs\\DL\\Lib\\site-packages\\torch\\lib\\fbgemm.dll\" or one of its dependencies."https://github.com/lucasg/De…

在VMware创建Ubuntu24

目录 一、创建虚拟机 1. 自定义创建虚拟机 2. 设置虚拟机兼容 3. 选择镜像 4. 命名虚拟机&#xff0c;选择存放位置 5. 处理器配置 6. 内存配置 7. 网络类型配置 8. I/O控制器类型 9. 磁盘配置 10. 完成虚拟机创建 二、Ubuntu安装 1. 进入虚拟机中进行ubuntu的安…

java算法day25

java算法day25 广度优先搜索岛屿数量深搜岛屿数量广搜 广度优先搜索 核心&#xff1a;从起点出发&#xff0c;以起始点为中心一圈一圈进行搜索&#xff0c;一旦遇到终点&#xff0c;记录之前走过的节点就是一条最短路。搜索的方式是上下左右 一张图说明白模拟过程&#xff1…

21.发布确认模式-高级

问题 生产环境中由于一些不明原因&#xff0c;导致rabbitmq重启&#xff0c;在重启的期间生产者消息投递失败&#xff0c;导致消息丢失&#xff0c;需要手动处理恢复。那么如何才能进行rabbitmq的消息可靠性投递&#xff1f;特别是在极端的情况&#xff0c;rabbitmq集群不可用…

从json到protobuf,接口效率的提升

在express开发的前后端调用中&#xff0c;express作为服务端是不二之选&#xff0c;它有一些很好用的body解析器来解析传入数据&#xff1b;而作为请求发起方&#xff0c;axios是非常方便的&#xff0c;这是一个很好的选择&#xff0c;它可以传输多种类型的数据给接收方。 通常…

ios生成打包证书和描述文件(保姆级)

苹果开发者地址&#xff1a;Apple Developer (简体中文) 1.申请苹果App ID(App的唯一标识) 选择App IDs 选择App 输入APP ID的描述和Bundle ID Explicit&#xff1a;唯一的ID&#xff0c;用于唯一标识一个应用程序&#xff0c;一般选Explicit WildCard&#xff1a;通配符ID&am…

【初阶数据结构篇】顺序表和链表算法题

文章目录 顺序表算法题移除元素删除有序数组中的重复项合并两个有序数组 链表算法题移除链表元素反转链表链表的中间结点合并两个有序链表链表分割链表的回文结构 顺序表算法题 不熟悉顺序表的可以先了解一下 顺序表实现方法 移除元素 给你一个数组 nums 和一个值 val&#x…

谷歌DeepMind的AlphaProof和AlphaGeometry 2:AI系统在国际数学奥林匹克竞赛中取得突破

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

管不住人,你就当不好官:一流高手的3大管人秘籍,价值千金

管不住人&#xff0c;你就当不好官&#xff1a;一流高手的3大管人秘籍&#xff0c;价值千金 秘籍一&#xff1a;睁眼法 古语有云&#xff1a;“水至清则无鱼&#xff0c;人至察则无友。” 驾驭下属&#xff0c;学会睁一只眼闭一只眼&#xff0c;不要一竿子打死&#xff0c;…

如何在GPU服务器上安装Stable Diffusion webUI

一、前提条件 1、硬件条件 GPU&#xff1a;12G&#xff0c;建议16G以上&#xff0c;还是尽量勾搭&#xff0c;好像现在最大32G&#xff0c;目前个人性价比24G有时长出售。 内存&#xff1a;16G以上&#xff0c;建议32G&#xff0c;也是越大越好。 硬盘&#xff1a;最好使用…

谈谈面向对象

引言 无论你是刚入门的程序小白&#xff0c;还是混迹社会多年的程序大佬&#xff0c;谈起面向对象&#xff0c;想必多多少少都能侃上两句。面向对象作为程序界“家喻户晓”的一种编程思想&#xff0c;亦或是一种程序设计方法&#xff0c;重要性已是不言而喻。毫不夸张的说&…

打卡第22天------回溯算法

开始学习了,希望我可以尽快成功上岸! 一、回溯理论基础 什么是回溯法?回溯法也可以叫做回溯搜索法,它是一种搜索的方式。 回溯是递归的副产品,只要有递归就会有回溯。 回溯法的效率回溯法的本质是穷举,穷举所有可能,然后找出我们想要的答案。如果想让回溯法高效一些,可…

160. 相交链表(返回相交起点)

思路&#xff1a; 前提&#xff1a; PA headA&#xff0c;PB headB (B链表头节点) 过程&#xff1a; 1.PA与PB同时向后遍历 2.若PA遍历完&#xff0c;PA headB PB遍历完&#xff0c;PB headA 3.直到PA与PB指向相同节点&#xff08;实际遍历过两次中的较短的链表即可&am…

LLM与搜索推荐

重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…

24款奔驰E260后排电动座椅升级,舒适度全面提升

以下是关于 24 款奔驰 E 升级原厂后排电动座椅功能的案例讲解&#xff1a; 升级原厂后排电动座椅通常需要直接替换整个后排座椅&#xff0c;包括扶手等部件。 后排电动座椅的好处是可以通过电机调节靠背角度和座椅前后移动。例如&#xff0c;乘客可以通过车门上的座椅调节按钮…

聚焦民生服务 助力企业发展 区块链应用加速落地

聚焦民生服务&#xff0c;助力企业发展&#xff0c;区块链应用正在加速落地。这一趋势体现了区块链技术在多个领域的广泛应用和深远影响。以下是对这一主题的详细分析&#xff1a; 一、区块链在民生服务中的应用 政务服务 数据共享与打通&#xff1a;区块链技术利用其分布式账…

征服 Docker 镜像访问限制:KubeSphere v3.4.1 成功部署全攻略

近期&#xff0c;KubeSphere 社区的讨论中频繁出现关于 Docker 官方镜像仓库访问受限的问题。 本文旨在为您提供一个详细的指南&#xff0c; 展示在 Docker 官方镜像访问受限的情况下&#xff0c;如何通过 KubeKey v3.1.2 一次性成功部署 KubeSphere v3.4.1 以及 Kubernetes …

Java二叉树三序遍历的非递归实现

目录 零、本文中模拟实现的二叉树源码 一、前序遍历的非递归实现 1.代码示例&#xff1a; 2.与递归算法的比对演示&#xff1a; 二、中序遍历的非递归实现 1.代码示例&#xff1a; 2.与递归算法的比对演示&#xff1a; 三、后序遍历的非递归实现 1.代码示例&#xff1a; 2.与递…