java - 使用扫描仪读取 csv 文件值,useDelimiter (";")不起作用

标签 java csv java.util.scanner delimiter

我正在尝试使用 Scanner.useDelimiter(";") 逐值读取 CSV 文件。
但是,Scanner.nextLine() 仍然返回整行而不是单个值。

CSV 文件如下所示:

0.00034;0.1;0.3;0.6;1,00E-13

我的代码:

Scanner iStream = new Scanner(new InputStreamReader(new FileInputStream(file.cvs);
iStream.useDelimiter(";");
String[] test = new String[5];
for (int i = 0; i < 5; i++) {
    test[i] = iStream.nextLine();
}

结果:

"0.00034;0.1;0.3;0.6;1,00E-13"  

预期结果:

"0.00034", "0.1", "0.3", "0.6", "1,00E-13"  

这可能吗,还是应该使用String.split()? 我错过了什么吗?

最佳答案

除此之外,这个问题对于像OpenCSV这样的解析库来说是现成的。 , nextLine 不考虑分隔符模式。使用 next 代替

test[i] = iStream.next();

关于java - 使用扫描仪读取 csv 文件值,useDelimiter (";")不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26544691/

相关文章:

java - 如何在同一输入上运行两个不同的映射器,并将其输出发送到单个reducer?

java - 访问 jar 中的资源(在 Netbeans 中工作,但不在命令行上工作)

c# - 读取 CSV 文件并转换为转置表

c# - 使用 C# 更新或删除 CSV 中的一行

java - 无法解决eclipse中的 "Java heap space"错误

java - 为什么我的 ListView 在 TableRow 中包含 RatingBar 时不可点击?

python - 我的 Python Set() 中的某些元素最终变成了十六进制

java - 用户输入抛出 NegativeArraySizeException;相同的硬编码(均为正数)数字有效

java - Java中的扫描仪可以从对话框中读取文本吗

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?