我需要在文本文件中搜索单词并使用java显示行号。如果它出现不止一次,我需要在输出中显示所有行号。有人可以帮帮我吗?
答案 0 :(得分:5)
使用Java类LineNumberReader
读取文本文件并调用方法getLineNumber
以查找当前行号。
http://docs.oracle.com/javase/7/docs/api/java/io/LineNumberReader.html
答案 1 :(得分:2)
您可以手动存储此信息。每当您调用readline()
的{{1}}时,如果您正在使用此类,您也可以将计数器增加1。例如,
BufferedReader
答案 2 :(得分:1)
这样的事可能有用:
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;
}