我有一个问题,即过滤csv文件。在我的GUI用户中,根据我想要消除csv文件的测试用例名称选择他的测试用例名称。例如,我从JTable case1和case2中选择,并将它们存储在一个字符串列表[case1,case2]中,以及如何获取测试名称为case1和case2的唯一行。csv文件返回特定行(java/swing)
我试着读取csv文件并创建jtable和动作侦听器,以将选择的测试用例存储为列表中的字符串,并且它们工作正常。然而;过滤部分我真的不知道?
谢谢你的帮助。
我有一个问题,即过滤csv文件。在我的GUI用户中,根据我想要消除csv文件的测试用例名称选择他的测试用例名称。例如,我从JTable case1和case2中选择,并将它们存储在一个字符串列表[case1,case2]中,以及如何获取测试名称为case1和case2的唯一行。csv文件返回特定行(java/swing)
我试着读取csv文件并创建jtable和动作侦听器,以将选择的测试用例存储为列表中的字符串,并且它们工作正常。然而;过滤部分我真的不知道?
谢谢你的帮助。
如果我理解正确的话,你想从什么地方得到的测试案例名称,并将其存储在一个列表如下:
List<String> cases = Arrays.asList("case1", "case9");
然后你想读取包含许多情况下,文件包括case1
和case9
,你只想选择那些行。如果正确的话,那么假设你有以下文件:
case1, a, b, c, ...
case2, x, y, z, ...
case9, aa, b, cc, ..
case22, 1,2,3, ...
我会使用Java 8的Stream
按行读入文件中的行,只有拿起包含cases
元素作为上述声明文件的那些行。 Stream将逐行读取文件,拾取一行,将其发送到另一个方法以检查该行是否包含cases
列表中的任何测试用例,如果是,则返回true,并且Stream
将保存该行列表中的readCases
。如果该行不包含任何测试用例,则会被Stream跳过。见下面的示例代码。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ReadFileStream {
public static void main(String[] args) throws IOException {
//cases that you picked from table
List<String> cases = Arrays.asList("case1", "case9");
//open stream to file, please change directory and filename
Stream<String> lines = Files.lines(Paths.get("C:\\test_java", "filterfile.txt"));
//loop through stream line by line, pick up those that match
List<String> readCases = lines.filter(line -> containsAll(line, cases)).collect(Collectors.toList());
lines.close();
System.out.println(readCases);
}
//this is a simple method that performs String's contains() for each
//case in the list.
public static boolean containsAll(String line, List<String> cases) {
for (String s : cases) {
if (line.contains(s)) {
return true;
}
}
return false;
}
}
输出为上述输入:
[case1, a, b, c, ..., case9, aa, b, cc, ..]
你试过究竟是什么?你的问题是什么 – redFIVE
@redFIVE我不知道如何过滤csv文件。 – limonik
我不想具体代码,我是Java的初学者...我只是想要一些tipps。减去完整值。 – limonik