位置缺失值分隔符

Missing value delimiter at position

我在使用 Java 导入 CSV 文件时遇到 'Missing value delimiter at position 1' 错误。

这是我的代码:

 protected int getFieldCount() 
{       
    return 3;
}
protected void importRecord(List<String> record, int lineNumber) {
 String rawScore = record.get(ELEMENT_RAW_SCORE).trim();
 String contextScore = record.get(ELEMENT_CONTEXT).trim();
 String subtest = record.get(ELEMENT_SUBTEST).trim();
}

如果我的 csv 文件如下所示:

95,Performance Scale,codes,       
ME,Performance Scale,Numbers,test
NM,Scale,Strategies,

当我在第 2 行中有 "test" 的其中一行中留下额外的字符时,我收到了错误,否则导入运行正常。即使我只添加到其中一行,每一行都会出现错误。

getFieldCount() 方法 returns int 源文件中每条记录中应出现的预期字段数,如果未严格执行字段数,则为非正值.

split("\t") 之类的字符串方法不起作用,因为它不是导致此问题的制表符分隔符。代码不会在第 3 列之后停止阅读,即使我严格强制执行它也是如此。我怎么能告诉它在第 3 列之后没有阅读任何内容?

不确定您是如何读取 csv 数据的,但是您的 csv 有 4 列,而不是 3 列:

95,Performance Scale,codes,       
ME,Performance Scale,Numbers,test
NM,Scale,Strategies,

第 1 行和第 3 行的第四列为空值,但这算作一列。

所以也许尝试 return 4 作为字段计数:

protected int getFieldCount() 
{       
    return 4;
}