使用 Contains 方法过滤输入的多个不同行
Using the Contains method to filter multiple different lines of an input
我正在使用包含数据行的 bufferedreader 读取一个 txt 文件。然后我试图根据多个条件过滤掉文本文件的行。在这种情况下,我想跳过以 AA 开头的行和以 DD 开头的行文本文件看起来像
AA Data1
BB Data2
CC Data3
DD Data4
AA Data5
CC Data6
到目前为止,我的代码识别出我想跳过这两个,但是,对于从 DD 到 AA 的行,它将跳过 DD 行,但没有识别出我也想跳过 AA排在下面。所以我程序的输出是:
BB Data2
CC Data3
AA Data5
CC Data6
它根据需要去掉了第一个 AA,但留下了第二个 AA,因为它去掉了它前面一行中的 DD。
下面是我当前的代码:
public static void main(String[] args){
try {
BufferedReader br = new BufferedReader(new FileReader("files/txtfile"));
String line = null;
String previousLine = null;
for (line=br.readLine(); line != null;){
if (previousLine != null) {
if (line.contains("AA")||line.contains("DD")){
previousLine = br.readLine();
}
line= br.readLine();
}
System.out.println(previousLine);
previousLine = line;
}
} catch (IOException e) {
e.printStackTrace();
}
}
如有任何建议,我们将不胜感激!
试试这个
import java.io.*;
public class tehMain {
public static void main(String[] args) {
try( BufferedReader br = new BufferedReader(new FileReader("files/txtfile")) ) {
for (String line=br.readLine(); line != null; line=br.readLine()) {
if (line.contains("AA")||line.contains("DD"))
continue;
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
这是你想要的吗?
for (line=br.readLine(); line != null; line=br.readLine()) {
if ( !((line.contains("AA")||line.contains("DD")) ) {
System.out.println(line)
}
}
这样做...
while((line = br.readLine()) != null) {
if(!(line.contains("AA") || line.contains("DD"))) {
System.out.println(line);
}
}
我正在使用包含数据行的 bufferedreader 读取一个 txt 文件。然后我试图根据多个条件过滤掉文本文件的行。在这种情况下,我想跳过以 AA 开头的行和以 DD 开头的行文本文件看起来像
AA Data1
BB Data2
CC Data3
DD Data4
AA Data5
CC Data6
到目前为止,我的代码识别出我想跳过这两个,但是,对于从 DD 到 AA 的行,它将跳过 DD 行,但没有识别出我也想跳过 AA排在下面。所以我程序的输出是:
BB Data2
CC Data3
AA Data5
CC Data6
它根据需要去掉了第一个 AA,但留下了第二个 AA,因为它去掉了它前面一行中的 DD。
下面是我当前的代码:
public static void main(String[] args){
try {
BufferedReader br = new BufferedReader(new FileReader("files/txtfile"));
String line = null;
String previousLine = null;
for (line=br.readLine(); line != null;){
if (previousLine != null) {
if (line.contains("AA")||line.contains("DD")){
previousLine = br.readLine();
}
line= br.readLine();
}
System.out.println(previousLine);
previousLine = line;
}
} catch (IOException e) {
e.printStackTrace();
}
}
如有任何建议,我们将不胜感激!
试试这个
import java.io.*;
public class tehMain {
public static void main(String[] args) {
try( BufferedReader br = new BufferedReader(new FileReader("files/txtfile")) ) {
for (String line=br.readLine(); line != null; line=br.readLine()) {
if (line.contains("AA")||line.contains("DD"))
continue;
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
这是你想要的吗?
for (line=br.readLine(); line != null; line=br.readLine()) {
if ( !((line.contains("AA")||line.contains("DD")) ) {
System.out.println(line)
}
}
这样做...
while((line = br.readLine()) != null) {
if(!(line.contains("AA") || line.contains("DD"))) {
System.out.println(line);
}
}