Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA-如何将CSV特定列的内容添加到列表<;字符串>;?_Java_List_Csv_Parsing_Arraylist - Fatal编程技术网

JAVA-如何将CSV特定列的内容添加到列表<;字符串>;?

JAVA-如何将CSV特定列的内容添加到列表<;字符串>;?,java,list,csv,parsing,arraylist,Java,List,Csv,Parsing,Arraylist,这是我的CSV,第一行是标题,Akt(pan),Mc1-1等是内容。 我需要创建一个函数来提取SearchTerm列的内容并将其添加到列表中 我用这段代码进行了尝试,但我的下一个处理需要有List,而不是List。有没有办法做到这一点,或者我有没有办法将解析后的List转换成只包含所有搜索词的List public List listAllSearchTerms()引发FileNotFoundException{ CsvParserSettings=新CsvParserSettings();

这是我的CSV,第一行是标题,Akt(pan),Mc1-1等是内容。 我需要创建一个函数来提取SearchTerm列的内容并将其添加到
列表中

我用这段代码进行了尝试,但我的下一个处理需要有
List
,而不是
List
。有没有办法做到这一点,或者我有没有办法将解析后的
List
转换成只包含所有搜索词的
List

public List listAllSearchTerms()引发FileNotFoundException{
CsvParserSettings=新CsvParserSettings();
设置。选择索引(0);
CsvParser parser=新的CsvParser(设置);
List allRows=parser.parseAll(新文件读取器(“D:\\Projects\\cstocs test dev bitbucket\\cstocs test core\\src\\main\\resources\\data\\searchterm.csv”);
List returnList=new ArrayList();
所有行。删除(0);
for(字符串[]字符串:所有行){
addAll(Arrays.asList(strings));
}
退货清单;
}

如果您知道搜索词是哪列,可以使用替换for循环

for (String[] strings : allRows) {
     returnList.add(strings[0]); //Assumes it's the first column
}

如果您知道SearchTerm是哪一列,那么可以将for循环替换为

for (String[] strings : allRows) {
     returnList.add(strings[0]); //Assumes it's the first column
}
有没有什么方法可以把解析后的列表放到 是否仅包含所有搜索词的列表

有没有什么方法可以把解析后的列表放到 是否仅包含所有搜索词的列表


请写出所提到的代码示例有什么问题?这个示例似乎已经完成了您想要做的事情。可能为
SearchTerms
创建一个bean类,然后按照这个问题进行操作,这样可以得到清晰的答案:请写下所提到的代码示例有什么问题?这个示例似乎已经完成了您想要做的事情。可能为
SearchTerms
创建一个bean类,然后按照这个问题进行操作,就会得到清晰的答案:我认为第一列“SearchTerm”就是我们想要的。然后应该有
.map(arr->arr[0])
而不是
flatMap
。虽然流式解决方案是完美的,但我认为第一列“SearchTerm”是有意的。然后应该有
.map(arr->arr[0])
而不是
flatMap
。虽然流解决方案是完美的。
    String[] strArr1 = {"a", "b", "c"};
    String[] strArr2 = {"d", "e", "f"};

    List<String[]> stringArrList = new ArrayList<>();
    stringArrList.add(strArr1);
    stringArrList.add(strArr2);

    List<String> collect = stringArrList.stream()
            .map(arr -> arr[0])
            .collect(Collectors.toList());

    System.out.println(collect);
[a, d]