Java指定字符串,返回所在行
在Java中,我们经常需要处理文本文件。如果我们想要找到指定字符串在文件中所在的行数,我们可以使用一些简单的代码来实现这个功能。
问题描述
假设我们有一个文本文件 example.txt
,其中包含一些文本内容。我们想要找到指定字符串在文件中的行数。例如,我们想要找到字符串 "Hello World" 在文件中的行数。
解决方案
我们可以使用Java的 BufferedReader
类来逐行读取文件,并使用 String
类的 contains
方法来检查每一行是否包含指定的字符串。如果找到了匹配的行,我们可以使用一个计数器来记录行数。
下面是一个示例代码,演示了如何实现上述功能:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FindStringInFile {
public static void main(String[] args) {
String filePath = "example.txt";
String targetString = "Hello World";
int lineNumber = findStringInFile(filePath, targetString);
if (lineNumber == -1) {
System.out.println("Target string not found in file.");
} else {
System.out.println("Target string found in line: " + lineNumber);
}
}
public static int findStringInFile(String filePath, String targetString) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(filePath));
String line;
int lineNumber = 1;
while ((line = reader.readLine()) != null) {
if (line.contains(targetString)) {
return lineNumber;
}
lineNumber++;
}
return -1; // Target string not found
} catch (IOException e) {
e.printStackTrace();
return -1;
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
在上面的代码中,我们首先指定了要读取的文件路径和目标字符串。然后,我们调用 findStringInFile
方法,传入文件路径和目标字符串作为参数。
在 findStringInFile
方法中,我们使用 BufferedReader
来逐行读取文件。我们使用一个计数器 lineNumber
来跟踪当前行数。在每一行,我们使用 contains
方法来检查是否包含目标字符串。如果找到了匹配的行,我们立即返回当前行数。如果遍历完整个文件后都没有找到匹配的行,我们返回 -1 表示目标字符串未找到。
在 main
方法中,我们根据 findStringInFile
方法的返回值来输出相应的结果。
示例
假设我们的文件 example.txt
的内容如下:
Hello World
This is a sample text file.
It contains multiple lines of text.
Hello World again.
我们想要找到字符串 "Hello World" 在文件中的行数。我们可以运行上述代码,得到如下输出:
Target string found in line: 1
总结
在本文中,我们介绍了如何使用Java来查找指定字符串在文本文件中所在的行数。我们使用 BufferedReader
类来逐行读取文件,并使用 contains
方法来检查是否包含目标字符串。通过这种方式,我们可以在Java中轻松地找到指定字符串在文件中的行数。
通过学习本文,读者可以了解如何在Java中处理文本文件,并在实际项目中应用这些技巧。希望本文对您有所帮助!