Java中的String indexOf()函数
Java中的String类提供了很多实用的方法,其中一个很有用的方法是indexOf()函数,这个函数可以帮助我们查找一个子串在字符串中 次出现的位置。在本文中,我们将详细介绍indexOf()函数及其使用方式。
indexOf()函数的语法
indexOf()函数的语法如下:
public int indexOf(String str)
其中,参数str表示要查找的子串。返回值为子串在字符串中 次出现的位置,位置从0开始计算。如果子串不在字符串中,返回-1。
举个例子,如果我们有一个字符串str,想要查找它中间的"hello"子串的位置,我们可以这样调用indexOf()函数:
int index = str.indexOf("hello");
上面这行代码将返回"hello"子串在str中 次出现的位置。如果"hello"子串不在str中,则返回-1。
indexOf()函数的重载方法
除了上面提到的indexOf()方法,String类还提供了一些重载方法,以支持更灵活的用法。下面是这些方法的签名:
public int indexOf(String str, int fromIndex)
这个方法在字符串中查找子串str,起始位置从fromIndex开始。返回子串在字符串中 次出现的位置,如果子串不在字符串中,则返回-1。
public int indexOf(int ch)
这个方法返回指定字符在字符串中 次出现的位置。如果指定字符不存在,则返回-1。
public int indexOf(int ch, int fromIndex)
这个方法在字符串中查找指定字符,起始位置从fromIndex开始。返回指定字符在字符串中 次出现的位置,如果指定字符不存在,则返回-1。
public int indexOf(String str, int fromIndex)
这个方法在字符串中查找子串,忽略大小写,起始位置从fromIndex开始。返回子串在字符串中 次出现的位置,如果子串不在字符串中,则返回-1。
indexOf()函数的使用案例
现在我们来看一个使用indexOf()函数的示例。
假设我们有一个文本文件,它包含了一些字符串。我们需要查找包含特定子串的行,并将它们输出到控制台。下面是一个Java程序可以实现这个功能:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class SearchString {
public static void main(String[] args) {
String fileName = "test.txt";
String searchStr = "hello";
try {
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line;
int lineNumber = 1;
while ((line = reader.readLine()) != null) {
if (line.indexOf(searchStr) != -1) {
System.out.println("Line #" + lineNumber + ": " + line);
}
lineNumber++;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
这个程序首先获取要读取的文件名和要查找的子串。然后它使用BufferedReader类从文件中一行一行地读取内容。每读取一行,程序会用indexOf()函数查找这行中是否包含了要查找的子串。如果包含,就将该行输出到控制台。最后关闭文件流。
总结
indexOf()函数是String类中非常实用的方法之一。这个函数可以帮助开发人员在字符串中查找子串,从而实现各种功能。在本文中,我们学习了indexOf()函数的语法和用法,并提供了一个示例程序。希望这篇文章可以对你有所帮助。
