在文件中查找带有特定字符串的前2行

时间:2013-03-20 19:01:06

标签: java bufferedreader

我正在尝试阅读文件并找到包含字符串" 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

3 个答案:

答案 0 :(得分:1)

您应该使用包含字符串ArrayList

ArrayList<String> st = new ArrayString<String>();
while ((line = br.readLine()) != null)
{                       
    if (line.contains("ua, "))
    {
       st.add(line);
    }
}

由于您不知道将包含"ua, " 字符串的行数,因此您应使用ArrayList

现在,您将在"ua, " st。

中包含ArrayList

OP EDIT

如果要处理两行,可以使用"ua, "保存找到的第一行,然后读取另一行,检查它是否包含此字符串:

String st1, st2;
while ((line = br.readLine()) != null)
{                       
    if (line.contains("ua, "))
    {
       st1 = line;
    }
    if ((line = br.readLine()) != null && line.contains("ua, "))
    {
       st2 = line;
    }
}

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

答案 1 :(得分:1)

boolean currentLineSet = false;
while ((line = br.readLine()) != null)
{                       
    if (line.contains("ua, "))
    {
       if (!currentLineSet) {
           sCurrentLine = line;
           currentLineSet = true;
       } else {
           sNextLine=line;
       //processing
       sCurrentLine = sNextLine;
       }
    }

答案 2 :(得分:0)

int index, iCurrentLine = 1;

while ((line = br.readLine()) != null)
{
    index++;                     
    if (line.contains("ua, ")) {
        sCurrentLine = line;
        iCurrentLine = index;
    }

}

再次遍历文件内容,然后确保新索引不等于先前的索引,然后设置sNextLine = line;