当前位置: 首页 > news >正文

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()方法的详细介绍,包括其用法、内部实现以及在处理特殊情况时的行为。


http://www.mrgr.cn/news/27954.html

相关文章:

  • 电基础理解
  • 轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数
  • Linux设备驱动开发:从基础理论到实战经验的全面解析
  • 网络安全学习(二)初识kali
  • 经验——IMX6UL的uboot无法ping主机或Ubuntu
  • 每日一问:C++ 中重写和重载的区别
  • 精简实用!一分钟搭建文件管理服务!
  • 企业竞争文化数据,词频分析(2007-2022年)
  • C++菜鸟教程 - 从入门到精通 第二节
  • 如何在GitHub上克隆仓库:HTTPS、SSH和GitHub CLI的区别
  • 通义灵码在Visual Studio上
  • 垃圾回收相关概念
  • Java21新特性
  • mac中git操作账号的删除
  • 【更新】上市公司-供应链金融水平数据(2000-2023年)
  • 统信服务器操作系统【d版字符系统升级到dde图形化】配置方法
  • 遗传算法(GA算法)求解实例---旅行商问题 (TSP)
  • 【思博伦】史上最详细思博伦测试仪使用精讲(三)!图解超赞超详细!!!
  • 基于AgentUniverse在金融场景中的多智能体应用探索
  • 动态规划---判断子序列