读取格式不一致的文本文件的建议方法

时间:2013-03-21 12:58:31

标签: java

我正在尝试将数字的文本文件作为双数组读取并在各种方法之后(通常导致输入格式异常)我得出的结论是我试图读取的文本文件与它的不一致限界。

大多数文本格式的格式为“0.000,0.000”,因此我一直使用Scanner和useDelimiter(“,”)来读取每个值。

事实证明(这是一个很大的数字文件),有些格式的格式是“0.000 0.000”(在我假设的行的末尾),这当然会产生输入格式异常。

这是一个悬而未决的问题,我是一个非常基本的Java程序员,所以我想知道是否有任何建议/方法来执行此操作。扫描仪是正确的类吗?

感谢您的时间!

3 个答案:

答案 0 :(得分:2)

逐行读取文件。然后将线分成几部分:

String[] parts = line.split("[ ,]");

现在迭代各个部分并为每个部分调用Double.parseDouble()

答案 1 :(得分:1)

扫描程序允许任何Java Regex Pattern作为分隔符。您可以通过执行以下操作来使用任意数量的分隔符:

scanner.setDelimiter("[,\\s]");  // Will match commas and whitespace

答案 2 :(得分:0)

我想对此进行评论,而不是单独回答,但我的声誉太低了。道歉,亚历克斯。

您提到在不同实例中使用两个不同的分隔字符,而不是两者作为单个分隔符的组合。 您可以在正则表达式中将竖线用作逻辑OR。

scanner.setDelimiter("[,|\\s]"); //Will match commas or whitespace as appropriate

逐行:

String[] parts = line.split("[,|\\s]");