我正在尝试将文本文件加载到数组中,然后使用数组中的元素。
我的文本文件格式为:
1 0 3 4 1
1 0 3 4 2
.....
2 2 2 2 2
我无法弄清楚如何在特定索引处提取不同的元素,以便我可以使用它们,或者对它们进行数学运算。
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Coord {
public int a,b,c,d,e,f;
public static void main(String[] args) throws IOException {
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("/Users/evanlivingston/3a.txt", true)));
Scanner sc = new Scanner(new File("/Users/evanlivingston/1.txt"));
List<Coord> coords = new ArrayList<Coord>();{
// for each line in the file
while(sc.hasNextLine()) {
String[] numstrs = sc.nextLine().split("\\s+");
Coord c = new Coord();
c.a = Integer.parseInt(numstrs[1]);
c.b = Integer.parseInt(numstrs[2]);
c.c = Integer.parseInt(numstrs[3]);
c.d = Integer.parseInt(numstrs[4]);
c.e = Integer.parseInt(numstrs[5]);
c.f = Integer.parseInt(numstrs[6]);
coords.add(c);
// now you have all coords in memory
for( int i=0; i<coords.size(); i++ ) {
// j=i+1 to calculate the distance between two points only once,
// not one way and back; also skip calculating distance between
// the same point
for( int j=i+1; j<coords.size(); j++ ) {
Coord c1 = coords.get(i);
Coord c2 = coords.get(j);
System.out.println(c2);
}
}
}
}
}
}
我主要担心的是执行一项操作,例如从索引4的c.f中减去索引3的c.f.
答案 0 :(得分:2)
“我主要担心的是执行一项操作,例如从索引4的c.f中减去索引3的c.f.”
Coord c1 = coords.get(3);
Coord c2 = coords.get(4);
int foo = c2.f - c1.f;
答案 1 :(得分:0)
Java数组索引从0开始。所以numstrs [1]引用numstrs的第二个元素。 请注意,您的代码每行需要6个数字,但样本数据文件只显示5个。
另外,您确定要为变量a,b,c,d,e,f命名吗? 也许这更有用:
public int a[6];