使用java查找文本文件中单词的行号

发布于 2024-12-06 05:06:44 字数 64 浏览 0 评论 0原文

我需要在文本文件中搜索单词并使用 java 显示行号。如果它出现多次,我需要显示输出中的所有行号。有人可以帮我吗?

I require searching a word in a text file and display the line number using java. If it appears more than once I need to show all the line numbers in the output. Can anyone help me please?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

澜川若宁 2024-12-13 05:06:44

使用 Java 类 LineNumberReader 读取文本文件并调用方法 getLineNumber 查找当前行号。

http://docs.oracle.com/javase/ 7/docs/api/java/io/LineNumberReader.html

Read the text file using Java class LineNumberReader and call method getLineNumber to find the current line number.

http://docs.oracle.com/javase/7/docs/api/java/io/LineNumberReader.html

长不大的小祸害 2024-12-13 05:06:44

像这样的事情可能会起作用:

public ArrayList<Integer> find(String word, File text) throws IOException {
    LineNumberReader rdr = new LineNumberReader(new FileReader(text));
    ArrayList<Integer> results = new ArrayList<Integer>();
    try {
        String line = rdr.readLine();
        if (line.indexOf(word) >= 0) {
            results.add(rdr.getLineNumber());
        }
    } finally {
        rdr.close();
    }
    return results;
}

Something like this might work:

public ArrayList<Integer> find(String word, File text) throws IOException {
    LineNumberReader rdr = new LineNumberReader(new FileReader(text));
    ArrayList<Integer> results = new ArrayList<Integer>();
    try {
        String line = rdr.readLine();
        if (line.indexOf(word) >= 0) {
            results.add(rdr.getLineNumber());
        }
    } finally {
        rdr.close();
    }
    return results;
}
眼藏柔 2024-12-13 05:06:44

您可以手动存储此信息。每当您调用 BufferedReaderreadline() 时(如果您正在使用此类),您还可以将计数器加一。例如,

public int grepLineNumber(String file, String word) throws Exception {
    BufferedReader buf = new BufferedReader(new InputStreamReader(new DataInputStream(new FileInputStream(file))));

    String line;
    int lineNumber = 0;
    while ((line = buf.readLine()) != null)   {
        lineNumber++;
        if (word.equals(line)) {
            return lineNumber;
        }
    }
    return -1;
}

You can store this information manually. Whenever you are invoking readline() of your BufferedReader, if you're using such, you can also increment a counter by one. E.g.,

public int grepLineNumber(String file, String word) throws Exception {
    BufferedReader buf = new BufferedReader(new InputStreamReader(new DataInputStream(new FileInputStream(file))));

    String line;
    int lineNumber = 0;
    while ((line = buf.readLine()) != null)   {
        lineNumber++;
        if (word.equals(line)) {
            return lineNumber;
        }
    }
    return -1;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文