[英]Java: assigning values to an Array
我有一个读取文件的方法。 文件的第一行有一个整数,它显示有多少附加行。 之后的每一行都有一对两个双精度值(无逗号)
例如:
4
13 15
20.2 33.5
24 38
30 31
等等
我有两个静态双精度数组,x和y。 对于第一行之后的每一行,我想将集合中的第一个double分配给x,将集合中的第二个double分配给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值'num'将文件中每增加一行的x和y的值从[0]递增到[1],[2],3等是,这样我就不会继续覆盖[0]?
例如,在上面的示例中,“ num”的值为4,因为其后还有四行。 如何基于num的值将x和y的值增加(+ =)1? 我知道这听起来很愚蠢,但现在我很沮丧。
唯一的问题是,如何基于第一行int值'num'将文件中每增加一行的x和y的值从[0]递增到[1],[2],3等是,这样我就不会继续覆盖[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
}
line.x[0] = input.nextDouble();
这会将读取的下一个值分配给数组x中属于line
对象的第一个插槽(我假设行是您实例化的对象,而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 ++;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.