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中处理文本文件,并在实际项目中应用这些技巧。希望本文对您有所帮助!