gpt4 book ai didi

java - 如果文件中包含特定字符串,则打印该行

转载 作者:行者123 更新时间:2023-12-01 18:41:53 24 4
gpt4 key购买 nike

我有一个文件,我想打印出包含字符串 A/C NO: 的行

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import org.apache.commons.io.FileUtils;
public class TestFndString {
public static void main(String[] args) throws IOException {
String str1 = FileUtils.readFileToString(new File("C:/Testing.txt"));
LineNumberReader lnr = new LineNumberReader(new FileReader(new File("C:/Testing.txt")));
lnr.skip(Long.MAX_VALUE);
if (str1.contains("A/C NO:")) {
int num = lnr.getLineNumber();
System.out.println(num);
}

}
}

我的代码正在打印 2 作为包含该字符串的行号,而该字符串实际上位于第 3 行。这是我的文件示例:

jhsdjshdsjhdjs
sdkjsdkjskdjskjd
AjhsdjhsdjhA/C NO: jhsdjhsdjssdlk

显然我不相信它可以读取更大的文件或一组文件。最好的方法是什么?

最佳答案

行编号与数组索引一样,从 0 开始。将其递增 1 将为您提供正确的答案。

if (str1.contains("A/C NO:")) {
int num = lnr.getLineNumber();
System.out.println( ++num ); // see the increment using ++ ?
}

预递增运算符会将 num 变量在打印之前增加 1,因此您将获得所需的结果。

关于java - 如果文件中包含特定字符串,则打印该行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19652244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com