首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用java在文本文件中查找单词的行号

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

Stack Overflow用户
提问于 2011-09-26 04:52:04
回答 3查看 15.1K关注 0票数 2

我需要在文本文件中搜索一个单词,并使用java显示行号。如果它不止一次出现,我需要在输出中显示所有行号。有谁能帮帮我吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-26 04:57:44

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

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

票数 5
EN

Stack Overflow用户

发布于 2011-09-26 04:56:18

您可以手动存储此信息。每当您调用BufferedReaderreadline()时,如果您正在使用这种方法,您还可以将计数器递增1。例如,

代码语言:javascript
复制
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;
}
票数 2
EN

Stack Overflow用户

发布于 2011-09-26 04:58:10

像这样的东西可能会起作用:

代码语言:javascript
复制
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;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7548519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档