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

Java中如何查找字符串中的子字符串

发布时间:2023-06-21 21:48:14

Java是一种高级的面向对象编程语言,除了具有高效的内存管理、强大的网络编程能力、丰富的类库资源等特点,还提供了许多与字符串相关的类和方法,方便开发人员对字符串进行操作。

在Java中,查找字符串中的子字符串是一种常见的操作,以下是几种常用的方法。

1. indexOf方法

indexOf方法是常用的查找字符串中子字符串的方法之一,该方法可以返回子字符串 次出现的位置。例如:

String str1 = "Hello world";
int index = str1.indexOf("wor");

以上代码会输出3,因为子字符串"wor"在原字符串中的位置是从第4个字符开始的。

如果子字符串在原字符串中不存在,那么indexOf方法会返回-1。例如:

String str2 = "Hello world";
int index = str2.indexOf("abc");

以上代码中,子字符串"abc"在原字符串中不存在,因此index的值会是-1。

indexOf方法还可以接受一个参数,表示从哪个位置开始查找子字符串。例如:

String str3 = "Hello world";
int index = str3.indexOf("l", 4);

以上代码中,从第5个字符开始查找子字符串"l",因此index的值会是9。

2. lastIndexOf方法

lastIndexOf方法是查找最后一个出现的子字符串的位置。例如:

String str1 = "Hello world";
int index = str1.lastIndexOf("l");

以上代码中,查找字符串中最后一个出现的"l",因此index的值会是9。

lastIndexOf方法也可以接受第二个参数,表示从哪个位置开始查找。例如:

String str2 = "Hello world, Hello";
int index = str2.lastIndexOf("l", 10);

以上代码中,查找"l"最后一次出现的位置,从第11个字符开始查找,因此index的值会是8。

3. contains方法

contains方法是查找字符串中是否包含某个子字符串的方法,返回值为boolean类型。例如:

String str1 = "Hello world";
boolean flag1 = str1.contains("wor");
boolean flag2 = str1.contains("abc");

以上代码中,查找字符串中是否包含"wor"和"abc"这两个子字符串,flag1的值会是true,flag2的值会是false。

4. matches方法

matches方法可以使用正则表达式来匹配字符串,返回值为boolean类型。例如:

String str1 = "2019-12-31";
boolean flag1 = str1.matches("\\d{4}-\\d{2}-\\d{2}");
String str2 = "Hello world";
boolean flag2 = str2.matches("\\d{4}-\\d{2}-\\d{2}");

以上代码中,使用正则表达式来匹配"2019-12-31"这个字符串是否符合日期格式,flag1的值为true。而对于"Hello world"这个字符串,使用相同的正则表达式来匹配,flag2的值为false。

5. split方法

split方法可以将字符串按照某个分隔符进行分割,并返回一个字符串数组。例如:

String str1 = "Hello world,Hello Java";
String[] arr1 = str1.split(",");

以上代码中,将字符串按照","进行分割,得到一个长度为2的字符串数组arr1。其中arr1[0]的值为"Hello world",arr1[1]的值为"Hello Java"。

总结

以上就是Java中常用的几种查找字符串中子字符串的方法。需要注意的是,这些方法都是区分大小写的。在使用这些方法的时候,还需要注意返回值的类型,以便于根据实际情况对返回值的结果进行处理。同时,如果需要进行更复杂的字符串操作,还可以使用Java提供的其他字符串相关类和方法,例如StringBuffer、StringBuilder、StringTokenizer等等。