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