Java基础(字符串比较equals)

博客介绍了equals()函数,其用于比较两个字符串是否相等,相等返回true,否则返回false。同时说明了它与==的区别,==比较字符串地址是否相同,equals()比较字符串内容是否相等,还通过具体案例进行了演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

equals()函数

   功能:用于比较两个字符串是否相等

   用法:

String s1;
System.out.println("请输入字符串:");
s1=sc.next();
System.out.println(s1.equals("abc"));
System.out.println(s1.equals("bcd"));

  相等返回true,否则返回false.

  案例:

package day0513;
import java.util.Scanner;
public class if_equals {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入今天是周末还是工作日:");
        String today=sc.next();
        System.out.println("请输入今天天气是晴朗还是雨天");
        String weather=sc.next();
        System.out.println("您今天适合的活动是:周末");
        //判断字符串相等的函数equals
        if(today.equals("周末"))
        {
            if(weather.equals("晴朗"))
            {
                System.out.println("外出旅游");
            } else{
                System.out.println("看电影");
            }
        }else{
            System.out.println("上班");
        }
    }
}

   注意:和==的区别。

   ==:比较两个字符串的地址是否相同。

  equals():比较两个字符串的内容是否相等,只针对String类而言。

  例如:String s1="yyy"; String s2="yyy";

            s1==s2返回(true);(因为s1,s2指向同一个对象,地址相同。)

            s1.equals(s2)返回(true);(因为s1,s2指向同一个对象,值当然相同)

           String s3 = new String("abc");String s4 = new String("abc");

            s3 == s4 返回(false)(因为s1,s2它俩指向的是不同的对象)

            s3.equals( s4) 返回(true)(因为s1,s2它俩指向的对象的值相等)

### Java 中使用 `equals` 方法进行字符串比较Java 编程语言中,为了正确地比较两个字符串的内容是否相等,推荐使用 `String` 类提供的 `equals()` 和 `equalsIgnoreCase()` 方法[^1]。 #### 基本语法 对于简单的字符串常量或变量之间的内容对比: ```java // 创建字符串实例并调用 equals() 方法 public class StringCompareExample { public static void main(String[] args) { String str1 = "Hello"; String str2 = new String("Hello"); boolean result = str1.equals(str2); System.out.println(result); // 输出 true 表明这两个字符串内容一致 // 忽略大小写的比较 boolean ignoreCaseResult = str1.equalsIgnoreCase("hello"); System.out.println(ignoreCaseResult); // 同样输出 true } } ``` 上述代码展示了如何利用 `equals()` 来判断两串字符是否完全匹配以及通过 `equalsIgnoreCase()` 实现不区分大小写的比较操作[^2]。 #### 注意事项 - **避免直接使用 `==` 运算符** 尽管可以工作于某些场景下(当涉及的是同一个字面量创建出来的字符串),但是通常情况下它只用于检测引用指向同一内存位置的对象而不是它们的实际值。因此,在大多数时候应该优先考虑采用 `equals()` 函数来完成逻辑上的等于测试[^3]。 - **处理可能为空的情况** 如果任一参与比较的操作数可能是 null,则应先验证再执行实际的比较动作以免抛出 NullPointerException 异常。一种安全的做法如下所示: ```java if (str != null && str.equals(targetStr)) { // 执行后续业务逻辑... } else { // 处理未找到目标字符串的情形 } ``` 或者更简洁的方式是让静态工具类如 Apache Commons Lang 的 StringUtils 提供的帮助函数来做这项检查: ```java import org.apache.commons.lang3.StringUtils; ... boolean isMatched = StringUtils.equals(str, targetStr); ``` 这种做法不仅提高了代码的安全性和可读性,同时也减少了潜在错误的发生几率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值