我需要在文本文件中搜索一个单词,并使用java显示行号。如果它不止一次出现,我需要在输出中显示所有行号。有谁能帮帮我吗?
发布于 2011-09-26 04:57:44
使用Java类LineNumberReader读取文本文件,并调用getLineNumber方法来查找当前行号。
http://docs.oracle.com/javase/7/docs/api/java/io/LineNumberReader.html
发布于 2011-09-26 04:56:18
您可以手动存储此信息。每当您调用BufferedReader的readline()时,如果您正在使用这种方法,您还可以将计数器递增1。例如,
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;
}发布于 2011-09-26 04:58:10
像这样的东西可能会起作用:
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;
}https://stackoverflow.com/questions/7548519
复制相似问题