Java 18 String 常用API

 

 利用str.equals(str1) 实现小案例账号密码登录校验 利用str.equalsIgnoreCase(str1)实现验证码忽略大小写登录验证

package com.heima.StringDemo;


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

//模拟登录验证
public class StrApi {
    public static void main(String[] args) {
        String name = "张三";
        String password = "123456";
        String code="";
        while (true) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入用户名账号");
            //获取us
            String us = sc.next();
            System.out.println("请输入用户名密码");
            //获取ps
            String ps = sc.next();
            //随机生成验证码
            code=Verification(5);
            System.out.println("请输入验证码"+code);
            String newCode=sc.next();

            //str.equals(str1) 比较两个字符串的值是否相同;
            //str.equalsIgnoreCase() 比较两个字符串的值是否相同 忽略大小写;

            //验证码正确
            if (code.equalsIgnoreCase(newCode)) {
                //账号密码正确
                if(name.equals(us) && password.equals(ps)){
                    System.out.println("登录成功");
                    break;
                }else{
                    System.out.println("账号密码错误,请重新输入");
                }
            } else {
                System.out.println("验证码错误,请重新输入");
            }
        }
    }

    public static String Verification(int n) {
        Random r = new Random();
        //存储Str
        String code = "";
        //随机生成n为啥的验证码  验证码 由 大写字母 小写字母 数字组成
        for (int i = 0; i < n; i++) {
            //随机大 小写  数字
            int a = r.nextInt(3);
            //switch 判断选择生成
            switch (a) {
                //生成数字
                case 0:
                    code += r.nextInt(10);
                    break;
                //生成大写字母 在ASCLL码中范围 65-90 在强制转换成字符
                case 1:
                    code += (char) (r.nextInt(25) + 65);
                    break;

                //生成小写字母 在ASCLL码中范围 97-122
                case 2:
                    code += (char) (r.nextInt(25) + 97);
                    break;
            }
        }
        return code;
    }
}
View Code

常用API方法

package com.heima.StringDemo;

public class StrApi1 {
    public static void main(String[] args) {
        //1 public int length(): 获取字符串的长度; 简单记:str.length();
        String name="我爱你中国love";
        System.out.println(name.length());//9

        //2 public char charAt(int index);获取某个位子索引出的字符 str.charAt(index);(查找str指定索引位子的字符)
        System.out.println(name.charAt(1));;////遍历字符串中的每个字符
        for (int i=0;i<name.length();i++){
            char r=name.charAt(i);
            System.out.println(r);
        }

        //3 public char[] toCharArray() ;把字符串转换成字符串数组(不改变原有字符串)
        char[] chars=name.toCharArray();
        System.out.println(chars.length);//9
        System.out.println(name);

        //4 public String substring(int beginIndex,int endIndex);截取字符串 截前不截后
        String name1=name.substring(0,3);
        System.out.println(name1);//我爱你

        //5 public String substring(int beginIndex); 从当前一直截取到末尾
        String name2=name.substring(4);
        System.out.println(name2);//国love

        //6 public String  replace( CharSequence target,CharSequence replacement ); str.replace(oldStr,newStr)
        String name3="金三胖最厉害的80后,金三胖棒棒的!";
        String s1=name3.replace("金三胖","***");
        System.out.println(s1);

        //7 public boolean  contains(CharSequence s);  判断字符串中是否包含指定的字符串 str.contains(str1); true 包含 false  不包含
        System.out.println(name3.contains("金三胖"));//true;
        System.out.println(name3.contains("金二胖"));//false;

        //8 public boolean startsWith(String prefix); 判断 字符串是否以什么开始
        System.out.println(name3.startsWith("金三胖"));//true
        System.out.println(name3.startsWith("金二胖"));//false

        //9 public String[] split(String s): 按照某个内容把字符串分割成某个数组返回
        String name4="王宝强,贾乃亮,陈羽凡";
        String [] s2=name4.split(",");
        for (int i = 0; i < s2.length; i++) {
            System.out.println(s2[i]);
        }

    }
}
View Code

 

 

posted @ 2022-06-23 16:45  还有什么值得拥有  阅读(43)  评论(0编辑  收藏  举报