学习笔记-字符串的比较

1."==" 比的是什么

基本数据类型:具体的数据值

引用数据类型:地址值

所以用"=="判断引用数据类型是不可取的,可能存在地址值不同但是具体值是相等的情况

package day6.StringCompare;

public class Demo1 {
    public static void main(String[] args) {
        String str1=new String("abc");
        String str2=new String("abc");
        String str3=str1;
        System.out.println(str1==str2);//false
        System.out.println(str1==str3);//true
    }
}

像上述代码,str1、str2、str3三个字符串值都相等,但是str1==str2的结果是false,str1==str3的结果就是true

2.字符串的比较

① boolean equals(比较的字符串)                                        完全一样的结果才是true,否则是false

② boolean equalsgnoreCase(比较的字符串)                      忽略大小写的比较(可用于比较验证码)

package day6.StringCompare;


public class Demo2 {
    public static void main(String[] args) {
        //创建两个字符串对象
        String str1=new String("abc");
        String str2="Abc";

        //== 比较
        //基本数据类型:比较的是数据值
        //引用数据类型:比较的是地址值
        System.out.println(str1==str2);//false

        //比较字符串对象的内容是否相等
        boolean result1=str1.equals(str2);
        System.out.println(result1);//false

        //比较字符串对象的内容是否相等,但是忽略大小写
        boolean result2=str1.equalsIgnoreCase(str2);
        System.out.println(result2);//true
    }
}

例子 用户登录

package day6.StringCompare;

import java.util.Scanner;

//需求:已知正确的用户名和密码,请用程序实现模拟用户登录。
//     总共给三次机会,登录之后,给出相应的提示
public class Test1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String name = "33233de";
        String password = "123456";

        //三次机会
        for (int i = 0; i < 3; i++) {
            System.out.println("请输入用户名");
            String userName = sc.next();
            System.out.println("请输入密码");
            String userPassword = sc.next();
            //判断用户名和密码是否正确
            if (userName.equals(name) && userPassword.equals(password)) {
                //相等,给出提示
                System.out.println("登录成功");
                return;
            } else {
                //不相等,提示用户名错误
                if (i != 2) {
                    System.out.println("用户名或者密码错误,你还有" + (2 - i) + "次机会");
                } else {
                    System.out.println("账户" + userName + "已被锁定");
                }
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值