Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从多行文本文件中获取整数向量_Java_Parsing_Integer - Fatal编程技术网

Java 从多行文本文件中获取整数向量

Java 从多行文本文件中获取整数向量,java,parsing,integer,Java,Parsing,Integer,我需要将.txt文件解析为三个双数组。这个文件有不同的行。每行有三个整数除以空格 例如: 19.1 24.3 0 18.2 24.0 0 12.6 24.9 20 14.4 28.0 20 我的目标是得到三个双数组(x、y和z),每个数组中应该有一列。因此,编写以下说明的结果应相同: double[] x = {19.1,18.2,12.6,14.4}; double[] y = {24.3,24.0,24.9,28.0}; double[] z

我需要将
.txt
文件解析为三个双数组。这个文件有不同的行。每行有三个整数除以空格

例如:

19.1    24.3    0
18.2    24.0    0
12.6    24.9    20
14.4    28.0    20
我的目标是得到三个双数组(
x
y
z
),每个数组中应该有一列。因此,编写以下说明的结果应相同:

double[] x = {19.1,18.2,12.6,14.4};
double[] y = {24.3,24.0,24.9,28.0};
double[] z = {0,0,20,20};
我知道如何打开和读取文件,例如:

String file = "filename.txt";
String line=null;
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
while(!(line=br.readLine()).contains("EOF")) {
  // read and process one line..
}

我不知道如何解析当前行的每一个数字,并将其分配给三个向量中的一个。

您只需按如下方式拆分和解析每一行:

String[] row = line.split("\\s+");
double d1 = Double.parseDouble(row[0]);
double d2 = Double.parseDouble(row[1]);
double d3 = Double.parseDouble(row[2]);

此外,如果行数不固定,那么使用
Double
s的
ArrayList
s而不是
Double
s的数组将更容易、更有意义。

您可能需要查看类。为什么不读到最后,而不是一直读到某行包含EOF,因为我从VB6开始就这么做了,但你是对的。另外,Scanner类也是一个很好的可能性。我的代码不完整,所以无法测试它。不过谢谢你,我会接受你的邀请answer@dragonmnl:正如JB Nizet在上面的评论中所说,“EOF”真的会出现在您的输入文件中。我问这个是因为,我在上面的示例中没有看到一个。