【发布时间】:2017-07-09 18:30:29
【问题描述】:
对于一个项目,我正在处理一个相当大的动物数据集,其中包含多达 14 个数据参数。我能够读入它并将其显示为字符串:
public static void readIn(String file) throws IOException {
Scanner scanner = new Scanner(new File(file));
while (scanner.hasNext()) {
String[] columns = scanner.nextLine().split("/t");
String data = columns[columns.length-1];
System.out.println(data);
}
}
并显示如下内容:
04:00:01 0.11 0.04 -0.1 1047470 977.91 91.75
04:00:01 0.32 -0.03 -0.07 1047505 977.34 92.91
04:00:01 0.49 -0.03 -0.08 1047493 978.66 92.17
但我目前无法尝试将每一列拆分为单独的数组,以便我可以处理数据(例如计算方法)。知道我该怎么做吗?任何帮助将不胜感激。
编辑:谢谢,我找到了一个可行的解决方案,还可以让我选择它专门读取的频道。我还决定将数据存储为类中的数组,这就是我现在所拥有的:
public static void readChannel(String file, int channel) throws IOException
{
List<Double> dataArr = new ArrayList<>();
Scanner scanner = new Scanner(new File(file));
while (scanner.hasNext()) {
String[] columns = scanner.nextLine().split("\t");
for (int i = channel; i < columns.length; i+=(columns.length-channel)) {
dataArr.add(Double.parseDouble(columns[i]));
dataArr.toArray();
}
}
}
【问题讨论】:
-
如果文件是制表符分隔的,那么您需要
\t而不是/t,这可能是它没有按预期工作的原因? -
处理完文件后,您将数据存储在何处以及如何存储?在矩阵中(如
String[][])?
标签: java arrays split java.util.scanner readfile