Java函数:如何在字符串中查找子串?
发布时间:2023-06-22 14:54:04
在Java中,我们可以使用内置的String类的方法来查找一个字符串中是否包含子串或者统计子串出现的次数等。
String类中自带的方法有indexOf、lastIndexOf、contains、startsWith以及endsWith等方法,它们的功能相似,都可以用来查找子串是否出现在主字符串中。
其中,indexOf方法返回 个出现的子串的位置,lastIndexOf方法返回最后一个出现的子串的位置,contains方法用来判断是否包含子串,startsWith和endsWith方法分别用于判断是否以某个子串开头或结尾。
例如,我们要查找一个字符串是否包含特定的子串,可以使用contains方法:
String mainStr = "Welcome to Java world";
String subStr = "Java";
if(mainStr.contains(subStr)){
System.out.println("包含子串" + subStr);
}else{
System.out.println("不包含子串" + subStr);
}
输出结果为“包含子串Java”。
如果我们需要查找一个子串在主字符串中的位置,可以使用indexOf方法:
String mainStr = "Welcome to Java world";
String subStr = "Java";
int index = mainStr.indexOf(subStr);
if(index != -1){
System.out.println("子串" + subStr + "出现在主字符串的位置是:" + index);
}else{
System.out.println("主字符串不包含子串" + subStr);
}
输出结果为“子串Java出现在主字符串的位置是:11”。
有时候,我们需要查找一个子串在主字符串中出现的次数,可以使用正则表达式和Matcher类来实现:
String mainStr = "Java is a programming language and Java is popular";
String subStr = "Java";
Pattern pattern = Pattern.compile(subStr);
Matcher matcher = pattern.matcher(mainStr);
int count = 0;
while(matcher.find()){
count++;
}
System.out.println(subStr + "在" + mainStr + "中出现了" + count + "次");
输出结果为“Java在Java is a programming language and Java is popular中出现了2次”。
除了上述方法,我们还可以使用比较常用的substring方法来获取子串的内容。substring方法需要传入子串在主字符串中的起始位置和结束位置(不包含结束位置):
String mainStr = "Welcome to Java world";
int startIndex = 11;
int endIndex = 15;
String subStr = mainStr.substring(startIndex, endIndex);
System.out.println("截取到的子串是:" + subStr);
输出结果为“截取到的子串是:Java”。
需要注意的是,在使用这些字符串处理方法时,我们需要判断子串是否存在,否则有可能产生NullPointerException异常。
总的来说,在Java中查找字符串中的子串是非常常见和基础的操作,开发者要熟练掌握方法的使用,并注意判断子串是否存在,以确保程序的正确性。
