String类常用API-字符串内容比较

字符串内容比较不适合用“==”

“==”比较的是地址,由“ ”创建的对象指向的地址是常量池,而String name = sc.next();接收到用户输入的字符串,地址存放再堆内存中,所以两个对象的地址不同,最终结果是false

import java.util.Scanner;

public class Stringtest {
    public static void main(String[] args) {
        String okname = "sujing";
        String okpassword = "123";

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入名称");
        String name = sc.next();
        System.out.println("请输入密码");
        String password = sc.next();

        if (okname == name && okpassword == password) {
            System.out.println("success");
        } else {
            System.out.println("fail");//这里得到的结果是fail
        }
    }
}

推荐使用equals:只关心内容是否一样,不关心地址

//改用equals,得到的结果是success
        if (okname.equals(name)  && okpassword.equals(password) ) {
            System.out.println("success");
        } else {
            System.out.println("fail");
        }

 

equalsIgnoreCase:不区分大小写比较

 /*
        equals是精确比较
        equalsIgnoreCase是不区分大小写比较
        常被用在验证码
         */
        String syscode="12Ab";
        String code1="12aB";
        System.out.println(syscode.equalsIgnoreCase(code1));//true
substring:截取内容,包前不包后
//substring:截取内容 包前不包后
        String name1="我是李泓良!";
        //只截取到3的前一位
        System.out.println(name1.substring(0, 3));//我是李

 

posted @ 2022-02-24 10:52  李泓良  阅读(58)  评论(0编辑  收藏  举报