我有一个读取文件的方法。该文件的第一行有一个整数,显示有多少额外的行。之后的每一行都有一对两个双精度值(无逗号)
例如:
4
13 15
20.2 33.5
24 38
30 31
等
我有两个静态双数组,x和y。对于第一行之后的每一行,我想将集合中的第一个双精度赋给x,将集合中的第二个双精度赋给y。 但是,我不是100%确定如何分配。到目前为止,这是我的代码:(请注意,该行是对另一个未显示的方法的调用)
Scanner input = new Scanner(System.in);
System.out.println("Enter the name of the data file.");
fileName = input.nextLine();
while(input.hasNext())
{
int num = input.nextInt(); // the first line integer
line.x[0] = input.nextDouble(); //the additional line x coordinate
line.y[0] = input.nextDouble(); //the additional line y coordinate
}
唯一的问题是,如何根据第一行int值为文件中的每个附加行将x和y的值从[0]增加到[1],[2],3等等'num'是,所以我不会一直覆盖[0]?
例如,在上面的例子中,'num'的值是4,因为它后面还有四行。如何根据num的值将x和y的值增加(+ =)1?我知道这听起来很愚蠢但我现在很难过。
答案 0 :(得分:3)
唯一的问题是,如何根据第一行int值为文件中的每个附加行将x和y的值从[0]增加到[1],[2],3等等'num'是,所以我不会一直覆盖[0]?
使用计数器i
int num = input.nextInt(); // the first line integer
int i = 0;
while(input.hasNext())
{
line.x[i] = input.nextDouble(); //the additional line x coordinate
line.y[i++] = input.nextDouble(); //the additional line y coordinate
}
答案 1 :(得分:1)
line.x[0] = input.nextDouble();
这会将下一个读取的值分配给属于名为line
的对象的数组x中的第一个插槽(我假设该行是您已实例化的对象,并且该x是该对象的公共字段...)
您希望增加索引并使用它来处理数组:
int i = 0;
while(input.hasNext())
{
int num = input.nextInt(); // the first line integer
line.x[i] = input.nextDouble(); //the additional line x coordinate
line.y[i] = input.nextDouble(); //the additional line y coordinate
i ++;
}