Java 逐行读取文件,忽略EOF之前的空行和一些字符串

Java 逐行读取文件,忽略EOF之前的空行和一些字符串,java,Java,我想阅读以下文件的变体,这些变体必须以end结尾,但最终结尾后可能有空行,或者在某些情况下有一个特殊的字符串“other”。以下每一行只能有一个匹配端。如果有一个以上的“结束”只是停止,唯一的时间可以有两个“结束”就在下面的EOF之前;abc在EOF之前有其相应的“结束” file1.txt abc def1 结束 结束 其他 到目前为止,我所拥有的代码并不适用于空行或忽略“abc”的额外回报 任何一个点我可能做错了什么???关键字返回不能是标识符。尝试解决编译器错误。ln应该是l吗?或者是否还

我想阅读以下文件的变体,这些变体必须以end结尾,但最终结尾后可能有空行,或者在某些情况下有一个特殊的字符串“other”。以下每一行只能有一个匹配端。如果有一个以上的“结束”只是停止,唯一的时间可以有两个“结束”就在下面的EOF之前;abc在EOF之前有其相应的“结束”

file1.txt abc def1 结束

结束

其他

到目前为止,我所拥有的代码并不适用于空行或忽略“abc”的额外回报


任何一个点我可能做错了什么???

关键字
返回不能是标识符。尝试解决编译器错误。ln应该是l吗?或者是否还有其他l您不会告诉我们?添加一个变量以跟踪您所处的def,然后在找到返回时清除它。如果def可以嵌套,那么您需要一个堆栈数据结构,而不是单个变量。然后我将打破循环。唯一一次我可以有一个额外的“结束”是在EOF之前,该结束是匹配abc的结束。
def_2
end

def-3
end
end
String pl = null;
ln = r.readLine();
while (l != null ) {
   l = l.trim();
   if( !l.equals("") { //ignores blank lines
       if (l.equals("end")) {
           if (l.equals(pl) ) {
               endf = true;
           }
       }
       pl = l;

    }
    if (endf){
        System.out.println("found more than one end after the def");
        break;
    }
    l = r.readLine();
}