59-Java:String类案例:验证码、登录、隐私号码

String案例

1.String类开发验证码功能

在这里插入图片描述

需求:

  • 随机生产一个5位的验证码,每位可能是数字、大写字母、小写字母。

分析:

  • 定义一个String类型的变量存储验 a-z、A-Z、0-9 之间的全部字符。
  • 循环5次,随机一个范围内的索引,获取对应字符连接起来即可。

实现:

1.定义可能出现的字符信息: a-z、A-Z、0-9
2.创建随机数对象,用于随机一个索引位置
3.定义一个空字符串的变量,用于连接5位验证码
4.定义for循环,循环5次: 
  (4.1) 每循环一次,就随机生成一个索引位置
  (4.2) 调用String类API: charAt(),获取某个索引位置的字符
  (4.3) 将获取到的字符连接起来
5.循环结束,输出验证码
package com.app.string;

import java.util.Random;

/**
    练习题:使用String完成随机生成5位的验证码
 */
public class StringExce7 {
    public static void main(String[] args) {
        // 1.定义可能出现的字符信息: a-zA-Z0-9
        String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

        // 2.创建随机数对象,用于随机一个索引位置
        Random rd = new Random();

        // 3.定义一个空字符串的变量,用于连接5位验证码
        String code = "";

        // 4.定义for循环,循环5次:
        for (int i = 0; i < 5; i++) {
            // i = 0 1 2 3 4
            // (4.1) 每循环一次,就随机生成一个索引位置
            int index = rd.nextInt(str.length());
            // (4.2) 调用String类API: charAt(),获取某个索引位置的字符
            char c = str.charAt(index);
            // (4.3) 每循环一次,就将获取到的字符连接起来
            code += c;
        }

        // 5.循环结束,输出验证码
        System.out.println("随机验证码: " + code);
    }
}
控制台:

随机验证码: UB96n

Process finished with exit code 0

2.模拟用户登录功能

在这里插入图片描述

需求:

  • 模拟用户登录功能,密码或者用户名输错,最多只能给三次重新输入的机会。

分析:

  • 系统后台定义一个正确的用户名及密码
  • 用户输入自己的用户名及密码,后台判断用户名及密码 都是否与 正确的用户名及密码 匹配得上,是则登录成功~,否则用户名或密码错误!允许用户重新输入,但是最多只给三次机会。

实现:

1.定义正确的用户名和密码
2.创建键盘录入对象,用于用户输入用户名和密码
3.定义for循环,循环3次: 
  (3.1) 用户输入用户名和密码并用变量接收
  (3.2) 判断用户名是否正确: 
  		a: 用户名正确,判断密码是否正确: 
  		   (1) 密码正确,登录成功~ 结束循环
  		   (2) 密码不正确,密码错误!循环不会结束,会让用户重新输入。
  		       3次后,自动结束循环,因为 i<=3。
  		b: 用户名不正确,用户名错误!循环不会结束,会让用户重新输入。
  		   3次后,自动结束循环,因为 i<=3。
package com.app.string;

import java.util.Scanner;

/**
    练习题:使用String开发模拟用户登录功能
 */
public class StringExce8 {
    public static void main(String[] args) {
        // 1.定义正确的用户名和密码
        String okUser = "LaoBaby";
        String okPassword = "LaoBaby2022";

        // 2.创建键盘录入对象,用于用户输入用户名和密码
        Scanner sc = new Scanner(System.in);

        // 3.定义for循环,循环3次:
        for (int i = 1; i <= 3; i++) {
            // i = 0 1 2
            // (3.1) 用户输入用户名和密码并用变量接收
            System.out.println("请您输入用户名: ");
            String user = sc.next();
            System.out.println("请您输入密码: ");
            String password = sc.next();

            // (3.2) 判断用户名是否正确:
            if (user.equals(okUser)) {
                // a: 用户名正确,判断密码是否正确:
                if (password.equals(okPassword)) {
                    // (1) 密码正确,登录成功~ 结束循环
                    System.out.println("登录成功~");
                    break;
                }else {
                    // (2) 密码不正确,密码错误!循环不会结束,会让用户重新输入。
                    System.out.println("密码错误!您还有" + (3-i) + "次机会!");
                    // 三次机会用完,会自动结束循环,因为 i <= 3
                }
            }else {
                // b: 用户名不正确,用户名错误!循环不会结束,会让用户重新输入。
                System.out.println("用户名错误!您还有" + (3-i) + "次机会!");
                // 三次机会用完,会自动结束循环,因为 i <= 3
            }
        }
    }
}
控制台:

请您输入用户名: 
LaoBaby
请您输入密码: 
LaoBaby2022
登录成功~

Process finished with exit code 0

--------------------------------------------------------------

请您输入用户名: 
asd
请您输入密码: 
asd
用户名错误!您还有2次机会!
请您输入用户名: 
geg
请您输入密码: 
afs
用户名错误!您还有1次机会!
请您输入用户名: 
LaoBaby
请您输入密码: 
LaoBaby2022
登录成功~

Process finished with exit code 0

---------------------------------------------------------------

请您输入用户名: 
LaoBaby
请您输入密码: 
213
密码错误!您还有2次机会!
请您输入用户名: 
LaoBaby
请您输入密码: 
242
密码错误!您还有1次机会!
请您输入用户名: 
LaoBaby
请您输入密码: 
4314
密码错误!您还有0次机会!

Process finished with exit code 0

2.手机号码屏蔽

在这里插入图片描述

需求:

  • 以字符串形式从键盘录入一个手机号码,将中间四位号码屏蔽

分析:

  • 调用键盘录入对象功能,录入一个手机号码
  • 将录入的手机号码的中间四位号码屏蔽

实现:

1.创建键盘录入对象,用于录入手机号码
2.输入一个手机号码
3.判断输入的手机号码的个数 是否为11个数
  (3.1) 是11个数: 
        a: 调用String类的API: substring,截取出中间四位号码
  		   调用String类的API: replace,将截取到的四位号码替换成 "****"
		b: 将屏蔽后的手机号码输出
  (3.2) 不是11个数,提示: "这不是手机号码!"
package com.app.string;

import java.util.Scanner;

/**
    练习题:使用String完成手机号码屏蔽
 */
public class StringExce9 {
    public static void main(String[] args) {
        // 1.创建键盘录入对象,用于录入手机号码
        Scanner sc = new Scanner(System.in);

        // 2.输入一个手机号码
        System.out.println("请输入您的手机号码(11个数): ");
        String phone = sc.next();

        // 3.判断输入的手机号码的个数 是否为11个数
        if (phone.length() == 11) {
            // (3.1) 是11个数:
            // a:调用String类的API: substring,截取出中间四位号码
            //   调用String类的API: replace,将截取到的四位号码替换成 "****"
            String secretPhone = phone.replace(phone.substring(3,7),"****");

            // b: 将屏蔽后的手机号码输出
            System.out.println(secretPhone);
        }else {
            // (3.2) 不是11个数,提示: "这不是手机号码!"
            System.out.println("这不是手机号码!");
        }
    }
}
控制台:

请输入您的手机号码(11个数): 
13833884384
138****4384

Process finished with exit code 0
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值