0

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

3 回答 3

1

您应该使用ArrayList将包含Strings的。

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

由于您不知道将包含"ua, " String的行数,因此您应该使用ArrayList.

现在您将拥有包含"ua, "ArrayListst.


操作编辑

如果要处理两行,可以保存找到的第一行"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;
    }
}

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

于 2013-03-20T19:09:27.777 回答
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;
       }
    }
于 2013-03-20T19:10:45.960 回答
0
int index, iCurrentLine = 1;

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

}

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

于 2013-03-20T19:04:03.260 回答