JAVA基础 - String案例

package com.hello.string;

import java.util.Random;
import java.util.Scanner;

public class StringDemo {
    /*目标:String常用的api,字符串的内容比较
    1、如果是字符串比较应当使用String提供的equlas方法,只关心内容一样就返回true
    2、基本数据类型比较时就可以使用==比较数据
     */
    public static void main(String[] args) {
        /*String案例一:
        String类开发验证码功能:随机产生一个5位的验证码,每位可能是数字、大写字母、小写字母
        分析:1、定义一个string类型的变量存储a-zA-Z0-9之间的全部字符;2、循环5次,随机一个范围内的索引,获取对应字符连接起来即可
         */
        //定义可能出现的字符信息
        String datas = "abcdefghijklnmopqrstuvwxyzABCDEFGHIJKLNMOPQRSTUVWXYZ0123456789";
        String code = "";
        Random r = new Random();
        for (int i = 0; i < 5; i++) {
            //随机一个索引
            int index = r.nextInt(datas.length());
            char c1 = datas.charAt(index);//String.charAt() 方法返回指定索引处的char值
            code +=c1;
        }
        System.out.println(code);
        /*
        String案例二:模拟用户登录功能,最多只给三次机会
        分析:1、系统后台定义好正确的登录名称、密码;2、使用循环控制3次,让用户输入正确的登录名和密码,判断是否登录成功,登录成功则不再进行登录;登录失败给出提示,并让用户继续登录
         */
        String okLoginName = "admin";
        String okPassword1 = "123456";
        //定义一个循环,循环3次,让用户登录
        Scanner sc1 = new Scanner(System.in);
        for (int i = 0; i < 3; i++) {
            System.out.println("请您输入登录名称");
            String loginName = sc1.next();
            System.out.println("请您输入登录密码");
            String password = sc1.next();

            //判断登录是否成功
            if(okLoginName.equals(loginName)){
                //判断密码是否正确
                if(okPassword1.equals(password)){
                    System.out.println("登录成功");
                    break;
                }else {
                    //密码错误了
                    System.out.println("您的密码不正确,您还有"+(3-i)+"次机会登录");
                }
            }else {
                System.out.println("登录名称错误了,您还有"+(3-i)+"次机会登录");
            }
        }



        String data = "我爱祖国";
        System.out.println(data.length());//获取字符串的长度

        char c = data.charAt(1);//获取某个索引位置处的字符:爱
        System.out.println(c);

        System.out.println("------遍历字符中的每个字符--------");
        for (int i = 0; i < data.length(); i++) {
            char ch = data.charAt(i);
            System.out.println(ch);
        }

        String rs = data.substring(0,4);//截取,包前不包后:我爱祖国
        System.out.println(rs);
        String rs1 = data.substring(2);//截取,从当前索引一直截取到末尾
        System.out.println(rs1);

        String rs2 = data.replace("祖国","中国");//replace替换字符
        System.out.println(rs2);

        System.out.println(data.contains("祖国"));//contain包含,结果是true

        //1、正确登录名和密码
        String okName = "李白";
        String okPassword = "123456";

        //2、请您输入登录名称和密码
        Scanner sc = new Scanner(System.in);
        System.out.println("登录名称;");
        String name = sc.next();
        System.out.println("登录密码:");
        String password = sc.next();

        //3、判断用户输入的登录名称和密码与正确的内容是否相等
        if(okName.equals(name) && okPassword.equals(password)){
            System.out.println("登录成功");
        }else {
            System.out.println("用户名或密码错误了");
        }

        //4、忽略大小写比较内容的api:一般用于比较验证码这样的业务逻辑
        String sysCode = "23AdFh";
        String code1 = "23aDfH";
        System.out.println(sysCode.equals(code1));//false
        System.out.println(sysCode.equalsIgnoreCase(code1));

    }
}

 

posted @ 2021-12-11 19:21  一加一  阅读(89)  评论(0编辑  收藏  举报