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”真的会出现在您的输入文件中。我问这个是因为,我在上面的示例中没有看到一个。