首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用SuperCSV处理带空值的列

用SuperCSV处理带空值的列
EN

Stack Overflow用户
提问于 2014-11-28 14:06:56
回答 1查看 3.5K关注 0票数 2

是否有一种方法来配置SuperCSV期望如何处理空值?有时将其处理为:

代码语言:javascript
复制
,,

或作为:

代码语言:javascript
复制
,NULL,

或作为:

代码语言:javascript
复制
,null,

但我似乎无法找到一种方法来配置SuperCSV希望如何处理这些问题,特别是对于数字列。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-28 23:09:49

,,是由超级CSV自动处理。例如,以下内容:

代码语言:javascript
复制
@Test
public void testNullsWithDefaultBehaviour() throws IOException{
    String csv = ",null,NULL\n";
    try (ICsvListReader reader = new CsvListReader(new StringReader(csv), 
        CsvPreference.STANDARD_PREFERENCE)){
        List<String> values = reader.read();
        for (String v : values){
            System.out.println(v == null);
        }
    }
}

将打印

代码语言:javascript
复制
true
false
false

通过使用单元处理器( "NULL"Token的组合),您也可以让它处理"null"Optional。为了使它更可重用,您可以定义您自己的处理器,它可以简单地设置它。该处理器将检查null,然后是"null",然后是"NULL",如果找到匹配,则返回null,否则它将返回未更改的值。

代码语言:javascript
复制
public class CustomOptional extends Optional {

    public CustomOptional(){
        super(new Token("null", null, new Token("NULL", null)));
    }


    public CustomOptional(final CellProcessor next) {
        super(new Token("null", null, new Token("NULL", null, next)));
    }

}

然后,您可以使用此处理器。

代码语言:javascript
复制
@Test
public void testNullsUsingProcessors() throws IOException{
    String csv = ",null,NULL\n";
    CellProcessor[] processors = {new CustomOptional(), 
                                  new CustomOptional(), 
                                  new CustomOptional()};
    try (ICsvListReader reader = new CsvListReader(new StringReader(csv), 
        CsvPreference.STANDARD_PREFERENCE)){
        List<Object> values = reader.read(processors);
        for (Object v : values){
            System.out.println(v == null);
        }
    }
}

它将打印

代码语言:javascript
复制
true
true
true

要处理数值列,只需将其链接在一起,就像使用Optional一样

代码语言:javascript
复制
new CustomOptional(new ParseInt())
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27190425

复制
相关文章

相似问题

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