首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Univocity CSV解析器根据条件跳过行

Univocity CSV解析器根据条件跳过行
EN

Stack Overflow用户
提问于 2020-04-16 20:47:07
回答 2查看 320关注 0票数 0

是否可以配置Univocity CSV解析器根据预定义的条件跳过一些行,例如单元格中的值?

例如,我有以下CSV文件:

代码语言:javascript
复制
name,city
Alex,NY
Mike,London
Dan,Sydney

我想跳过处理(并从结果集中删除) city等于London的所有行。

我在文档中找不到这样的功能。请给我建议。

EN

回答 2

Stack Overflow用户

发布于 2020-04-19 06:53:22

不确定它是否是最好的解决方案,但是可以看看:

代码语言:javascript
复制
    StringReader input = new StringReader(""
        + "name,city\n"
        + "Alex,NY\n"
        + "Mike,London\n"
        + "Dan,Sydney\n");

    CsvParserSettings settings = new CsvParserSettings();

    settings.setAutoConfigurationEnabled(true);
    settings.setHeaderExtractionEnabled(true);

    settings.getFormat().setLineSeparator("\n");
    settings.selectFields("name", "city");

    settings.setProcessor(new RowListProcessor() {

        @Override
        public void rowProcessed(String[] row, ParsingContext context) {
            super.rowProcessed(row, context);
            if (row[1].equalsIgnoreCase("London")) {
                context.skipLines(1);
            }
        }
    });

    CsvParser parser = new CsvParser(settings);

    parser.beginParsing(input);

    Object[] row;
    while ((row = parser.parseNext()) != null) {
        System.out.println(Arrays.toString(row));
    }

    parser.stopParsing();
票数 1
EN

Stack Overflow用户

发布于 2020-06-12 12:04:06

你可以在浏览文件时使用迭代器方法,跳过你不需要的行。有关更多详细信息,请参阅iterating approach。或者甚至是iterating using beans

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61250600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档