java:判断字符串相等( equals、 regionMatches)方法

字符串相等判断

背景:条件语句中不能使用 “==” 来判定字符串相等。

  1. equals 方法
    equals方法用于比较俩个字符串的内容是否相等,而“==”比较的是存放地址是否相等。

equals方法对于字符串来说是比较内容的,而对于非字符串来说是比较其指向的对象是否相同的。== 比较符也是比较指向的对象是否相同的也就是对象在对内存中的的首地址。
https://www.cnblogs.com/bluestorm/archive/2012/03/02/2377615.html
https://blog.csdn.net/yeyingss/article/details/53690098

  • 代码如下
import java.util.Scanner;
public class Test13 {
    public static void main(String[] args) {
        Scanner num = new Scanner(System.in);
        System.out.println("是否会员(y or n)");
        String identity = num.next();
        System.out.println("输入购物金额:");
        double money=num.nextDouble();
        if(identity.equals("n")){
            System.out.println("your need pay is :"+money*0.9);
        }else if(identity.equals("y")){
            if (money >= 200) {
                System.out.println("your need pay is :" + money * 0.75);
            } else {
                System.out.println("your need pay is :" + money * 0.8);
            }
        }
        else{
            System.out.println("输入有误");
        }
    }
}

代码输出:
		是否会员(y or n)
		n
		输入购物金额:
		200
		your need pay is :180.0
  1. regionMatches() 方法
    regionMatches()方法可用于判断字符串str1与str2中是否有相等的片段,或者限定str2的固定片段与str1的限定片段比较看是否相等,相等则返回 true 不想等返回 false。
public boolean regionMatches(int toffset,
                             String other,
                             int ooffset,
                             int len)
                           

 //   ignoreCase -- 如果为 true,则比较字符时忽略大小写。
 //   toffset -- 此字符串中子区域的起始偏移量。
 //   other -- 字符串参数。
//    ooffset -- 字符串参数中子区域的起始偏移量。
//    len -- 要比较的字符数。
  • 代码如下:
import java.util.Scanner;
public class Test13 {
    public static void main(String[] args) {
        Scanner num = new Scanner(System.in);
        System.out.println("是否会员(y or n)");
        String identity = num.next();
        System.out.println("输入购物金额:");
        double money=num.nextDouble();
        if(identity.regionMatches(0,"n",0,1)){
            if(money>=100){
                System.out.println("your need pay is :"+money*0.9);
            }else{
                System.out.println("your need pay is :"+money);
            }
        }else if(identity.regionMatches(0,"y",0,1)){
            if (money >= 200) {
                System.out.println("your need pay is :" + money * 0.75);
            } else {
                System.out.println("your need pay is :" + money * 0.8);
            }
        }
        else{
            System.out.println("输入有误");
        }
    }
}

https://www.runoob.com/java/java-string-regionmatches.html

  1. 代码分析
    上面俩个函数都可以实现判别字符串相等的功能,regionMaches()可以实现片段截取,equals()只能判断完整的字符串相等相等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值