如何使用Java检查文件中是否存在字符串?

时间:2018-07-24 15:04:18

标签: java string file

阅读文本文件后,如何使用Java识别该文件中是否存在字符串?

我尝试过:

public class SearchFaq {
    public static List<String> readFileInList(String fileName) {
        List<String> lines = Collections.emptyList();

        try {
            lines = Files.readAllLines(Paths.get(fileName), StandardCharsets.UTF_8);
        } catch (IOException e) {
            // do something
            e.printStackTrace();
        }
        return lines;
    }

    public static void main(String[] args) {
        List l = readFileInList("/home/pavankalyan/Desktop/sample.aiml");

        Iterator<String> itr = l.iterator();
        while (itr.hasNext()) {
            if (itr.next().equalsIgnoreCase("About Company")) {
                System.out.println(itr.next());
            }
        }
    }
}

但是没有用。如何查找文件中是否包含字符串(“关于公司”)?

1 个答案:

答案 0 :(得分:1)

if(itr.next().equalsIgnoreCase("About Company"))
        System.out.println(itr.next());

您在上述代码中两次致电itr.next。因此,如果找到匹配项,它将打印下一行。

更改为

String line = itr.next();
if(line.equalsIgnoreCase("About Company")) {
    System.out.println(line);
}

但是,您没有明确提及文件中是否存在字符串(“关于公司”)。到底是什么意思?的含义。如果该单词本身必须是一行,那么上面的代码应该起作用。如果要打印即使它是一行的一部分,则必须使用contains

String line = itr.next();
if(line.toLowerCase().contains("About Company".toLowerCase())) {
    System.out.println(line);
}