Java 如果文本文件中的行符合特定条件,如何仅读取这些行?

Java 如果文本文件中的行符合特定条件,如何仅读取这些行?,java,Java,我有一个文本文件,我现在可以扫描,但是文件中有一些行我不想读入,有没有办法只读入以大写字母开头的行? 请帮助一个nooby?非常简单的问题,非常简单的解决方案: try (BufferedReader br = new BufferedReader(new FileReader("filename.txt"))) { String line; while ((line = br.readLine()) != null) { if(!line.isEmpty() &

我有一个文本文件,我现在可以扫描,但是文件中有一些行我不想读入,有没有办法只读入以大写字母开头的行?
请帮助一个nooby?

非常简单的问题,非常简单的解决方案:

try (BufferedReader br = new BufferedReader(new FileReader("filename.txt"))) {
    String line;
    while ((line = br.readLine()) != null) {
        if(!line.isEmpty() && Character.isUpperCase(line.charAt(0)))
           System.out.println(line);
    }
}
catch(Exception e){
    // Handle the trouble
}

只需检查您刚刚读取的行(如果在if语句中检查为非空且不为空)是否以大写字母开头,否则它将移到下一行。

是的,有一种方法。到目前为止,您有什么代码?也许只需要一点小小的改变。这会在空行上抛出一个漂亮的
StringIndexOutOfBoundsException
。。。并调用
br.close()
是冗余的,try with resources会处理它。
如果(line!=null
仍然是多余的,你处于一个while循环中,这是真的。那么,好吧,现在呢?我认为这一切都是正确的。你不应该匆忙完成这一个…你仍然缺少一个括号,它无法编译。你应该慢慢来,在发布之前在IDE中运行你的代码。为什么匆忙?做出一个好的明确的回答,它赢得了所有的成功时间