Java 查找文件中具有特定字符串的前两行

Java 查找文件中具有特定字符串的前两行,java,bufferedreader,Java,Bufferedreader,我正在尝试读取一个文件,并找到包含字符串“ua”的第一行。我想把那条线设置为等于sCurrentLine。然后,我想将文件中包含“ua”的下一行设置为等于sNextLine。然后我将处理这些行,然后我希望sCurrentLine等于sNextLine,然后循环继续,直到文件结束 这就是我目前所拥有的 while ((line = br.readLine()) != null) { if (line.contains("ua, ")) {

我正在尝试读取一个文件,并找到包含字符串“ua”的第一行。我想把那条线设置为等于sCurrentLine。然后,我想将文件中包含“ua”的下一行设置为等于sNextLine。然后我将处理这些行,然后我希望sCurrentLine等于sNextLine,然后循环继续,直到文件结束

这就是我目前所拥有的

while ((line = br.readLine()) != null)
{                       
    if (line.contains("ua, "))
{
       sCurrentLine = line;
       //now I don't know what to do

再次循环浏览文件内容,然后确保新索引不等于上一个索引,然后只需设置
sNextLine=line

您应该使用包含字符串的
数组列表


当然,您可以设置标志以查看第一行和第二行是否包含字符串。

一旦遇到包含
ua的新行,
前一行将被新行覆盖。你有保存前一行的机制吗?@Smit如果这是真的,那么不,我什么都不做,然后你用@marounnaroun-answer:-}除了格式之外,这与操作码有什么不同?你发布了它然后删除了它吗?我没有偷任何东西:我只是开玩笑。。我在写信,你们在那个里贴出了答案。我总是这样:D我知道这种感觉;)问题是,我不知道有多少行将包含
“ua,
,但我希望一次处理2行。因此,您将sCurrentLine添加到了arraylist中,但是我如何使用
“ua,
获取下一行并处理它?@marounnaroun好的,这样第二个if语句将在保存第一个字符串后开始读取?因为一旦我处理了这两个字符串,我需要st1等于st2,然后继续这个模式,我想这是可行的,但我不明白为什么。currentLineSet在做什么?抱歉,它的名称有点不合适-它应该是“firstLineMet”。它用于处理包含“ua”的行的第一次出现,因为它应该“特别”处理-当遇到第一行时,不进行处理,也不设置sNextLine变量。如果已经遇到了第一行,则可以处理接下来的所有行,如else{}子句所示。
boolean currentLineSet = false;
while ((line = br.readLine()) != null)
{                       
    if (line.contains("ua, "))
    {
       if (!currentLineSet) {
           sCurrentLine = line;
           currentLineSet = true;
       } else {
           sNextLine=line;
       //processing
       sCurrentLine = sNextLine;
       }
    }
ArrayList<String> st = new ArrayString<String>();
while ((line = br.readLine()) != null)
{                       
    if (line.contains("ua, "))
    {
       st.add(line);
    }
}
String st1, st2;
while ((line = br.readLine()) != null)
{                       
    if (line.contains("ua, "))
    {
       st1 = line;
    }
    if ((line = br.readLine()) != null && line.contains("ua, "))
    {
       st2 = line;
    }
}
boolean currentLineSet = false;
while ((line = br.readLine()) != null)
{                       
    if (line.contains("ua, "))
    {
       if (!currentLineSet) {
           sCurrentLine = line;
           currentLineSet = true;
       } else {
           sNextLine=line;
       //processing
       sCurrentLine = sNextLine;
       }
    }