欢迎访问宙启技术站
智能推送

Java函数:如何找到一个字符串中的子字符串?

发布时间:2023-06-23 00:34:32

在Java语言中,我们可以使用多种方法来找到一个字符串中的子字符串。这些方法涉及到不同的Java函数,包括indexOf(),lastIndexOf(),substring(),split(),contains()等等。本文将逐步介绍这些函数的使用方法。

1. indexOf()函数

在Java中,indexOf()函数可以用来查找一个字符串在另一个字符串中 次出现的位置。该函数的语法如下:

int indexOf(String str, int fromIndex)

其中,str是要查找的字符串,fromIndex是指从哪个位置开始查找。该函数返回值为目标字符串 次出现的位置。如果查找失败,则返回-1。

例如,下面的代码使用indexOf()函数查找字符串"Hello World!"中"World"的位置:

String str = "Hello World!";

int index = str.indexOf("World");

System.out.println(index);

输出结果为:

6

这意味着"World"这个子字符串的起始位置是在第7个字符处(从0开始计数)。

2. lastIndexOf()函数

lastIndexOf()函数与indexOf()函数类似,不同之处在于它返回的是目标字符串最后一次出现的位置。该函数的语法如下:

int lastIndexOf(String str, int fromIndex)

其中,str是要查找的字符串,fromIndex是指从哪个位置开始查找。该函数返回值为目标字符串最后一次出现的位置。如果查找失败,则返回-1。

例如,下面的代码使用lastIndexOf()函数查找字符串"Hello World!"中"o"最后一次出现的位置:

String str = "Hello World!";

int index = str.lastIndexOf("o");

System.out.println(index);

输出结果为:

7

这意味着"o"这个子字符串的最后一个位置是在第8个字符处(从0开始计数)。

3. substring()函数

Java中的substring()函数可以用来获取一个字符串的子字符串。该函数的语法如下:

String substring(int beginIndex, int endIndex)

其中,beginIndex是子字符串的起始位置,endIndex是子字符串的结束位置(不包括该位置处的字符)。该函数返回值为获取的子字符串。

例如,下面的代码使用substring()函数获取字符串"Hello World!"中的"World"子字符串:

String str = "Hello World!";

String subStr = str.substring(6);

System.out.println(subStr);

输出结果为:

World!

这里的beginIndex为6,表示从第7个位置开始获取子字符串;endIndex没有显式指定,所以默认为字符串的长度,即获取从beginIndex到字符串结尾的所有字符。

如果我们需要获取字符串中间的一段子字符串,可以指定beginIndex和endIndex的值,例如:

String str = "Hello World!";

String subStr = str.substring(6, 11);

System.out.println(subStr);

输出结果为:

World

这里的beginIndex为6,表示从第7个位置开始获取子字符串;endIndex为11,表示获取到第11个位置(不包括该位置处的字符)。

需要注意的是,如果指定的beginIndex和endIndex超出了字符串的范围,将会抛出IndexOutOfBoundsException异常。

4. split()函数

Java中的split()函数可以用来将一个字符串拆分成多个子字符串。该函数的语法如下:

String[] split(String regex)

其中,regex是作为分隔符的正则表达式。该函数返回值为由拆分后的子字符串组成的数组。

例如,下面的代码使用split()函数将字符串"Hello-World!"拆分成两个子字符串:

String str = "Hello-World!";

String[] subStrs = str.split("-");

System.out.println(subStrs[0]);

System.out.println(subStrs[1]);

输出结果为:

Hello 

World!

这里的分隔符是"-",所以该字符串被拆分成了"Hello"和"World!"两个子字符串。

需要注意的是,如果regex中包含一些特殊字符,需要进行转义。例如,如果我们想将字符串拆分成"Hello"和"World!"两个子字符串,需要将分隔符指定为"!",但因为"!"是正则表达式中的特殊字符,所以需要在它前面加上"\\"进行转义:

String str = "Hello!World!";

String[] subStrs = str.split("\\!");

System.out.println(subStrs[0]);

System.out.println(subStrs[1]);

输出结果为:

Hello

World!

5. contains()函数

Java中的contains()函数可以用来判断一个字符串是否包含指定的子字符串。该函数的语法如下:

boolean contains(CharSequence s)

其中,s是要判断的子字符串。该函数返回值为布尔类型,表示目标字符串是否包含指定的子字符串。

例如,下面的代码使用contains()函数判断字符串"Hello World!"是否包含子字符串"World":

String str = "Hello World!";

boolean result = str.contains("World");

System.out.println(result);

输出结果为:

true

这说明"Hello World!"中包含"World"子字符串。

综上,Java中的这些函数可以用来方便地查找和获取一个字符串中的子字符串,可以根据实际需求选择适合的函数进行使用。