我有这个代码来查找给定的行并打印下面的5行。我想修改它,而是打印仅下面的第n行。
示例:
如果我想找到包含猫的线,我想在它下面打印第二行,它会打印“猪”#。或者如果我想打印下面的第一行,它会打印出“狗”。
或者,如果给定的行包含' dog'我想打印下面的第一行,它会打印“猪”。
以下是代码:
if (line.contains("string")) {
for (int a = 0; in.hasNextLine() && a < 6; a++) {
System.out.println(line);
line = in.nextLine();
}
}
我如何修改它以做我想要的?感谢。
答案 0 :(得分:0)
存储行号(lineNum
),然后循环直到达到该行号。然后从line
的最后一次迭代中打印nextLine()
中最后存储的行。
public void printLineN(int lineNum) {
if ( line.contains("string") ) {
for (int a = 0; in.hasNextLine() && a <= lineNum; a++)
line = in.nextLine();
System.out.println(line);
}
}
或者,使用LineNumberReader
&#39; s getLineNumber()
。
答案 1 :(得分:0)
您可以执行以下操作:
String word = ..
int n = ...
if (line.contains(word)) {
int a = 0;
while (in.hashNextLine && a++ != n)
line = in.nextLine();
if (a == n) {
System.out.println(line);
}
else {
System.out.println("Error: There is only " + a + " entries after the word " + word);
}
}
找到单词后,while循环将尝试将读者推进到找到单词后的第n行。如果有足够的行可用,则会打印第n行,否则将打印错误。