繁体   English   中英

Java:将值分配给数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM