Java contains()方法

Java中的String类提供了一个名为contains()的方法,用于检查一个字符串是否包含特定的字符序列。以下是关于contains()方法的详细说明:

方法声明

public boolean contains(CharSequence s):这个方法接受一个实现了CharSequence接口的对象作为参数,并返回一个布尔值。

功能描述

contains()方法接收一个字符序列作为参数,并检查该序列是否出现在调用方法的字符串中。

返回值

该方法根据字符串是否包含指定的字符序列返回truefalse

CharSequence是什么?

CharSequence是一个Java接口,代表了一组字符的序列。这个接口提供了对不同种类字符序列的统一、只读访问方式。以下是实现CharSequence接口的一些类:

  • CharBuffer
  • Segment
  • String
  • StringBuffer
  • StringBuilder

除了CharBuffer是一个抽象类外,其余都是普通类。因此,可以将这些普通类的对象作为contains()方法的参数传递,以检查字符串是否包含这些对象表示的字符序列。

示例代码

下面是一个使用contains()方法的示例代码:

public class Codekru {
    public static void main(String[] args) {
        String str = "hello codekru";
        String string = "codekru";
        StringBuilder stringBuilder = new StringBuilder("codekru");
        StringBuffer stringBuffer = new StringBuffer("codekru");
        
        System.out.println("Does str contains string? " + str.contains(string));
        System.out.println("Does str contains stringBuilder? " + str.contains(stringBuilder));
        System.out.println("Does str contains stringBuffer? " + str.contains(stringBuffer));
    }
}

输出结果为:

Does str contains string? true
Does str contains stringBuilder? true
Does str contains stringBuffer? true

内部实现

contains()方法的内部实现是通过调用indexOf()方法来判断是否包含字符序列:

public boolean contains(CharSequence s) {
    return indexOf(s.toString()) >= 0;
}

这表明contains()方法通过将输入的CharSequence对象转换为字符串,并检查转换后的字符串是否出现在原字符串中来工作。

特殊情况

传入空字符串

如果你向contains()方法传递一个空字符串(""),该方法将始终返回true,因为任何字符串都包含空字符串。

public class Codekru {
    public static void main(String[] args) {
        String str1 = "hello codekru";
        String str2 = "";
        System.out.println(str1.contains(""));
        System.out.println(str2.contains(""));
    }
}

输出结果为:

true
true
传入空引用(null)

如果你向contains()方法传递一个null值,将会抛出NullPointerException

public class Codekru {
    public static void main(String[] args) {
        String str = "hello codekru";
        System.out.println(str.contains(null));
    }
}

输出结果为:

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.lang.CharSequence.toString()" because "s" is null

以上是关于Java中Stringcontains()方法的详细介绍,包括其用法、内部实现以及在处理特殊情况时的行为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知识的宝藏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值