Java:为数组赋值

Java:为数组赋值,java,arrays,file,input,Java,Arrays,File,Input,我有一个读取文件的方法。文件的第一行有一个整数,显示还有多少行。之后的每一行都有一对双精度值,没有逗号 例如: 4 13.15 20.2 33.5 2438 30 31 等等 我有两个静态双数组,x和y。对于第一行之后的每一行,我想将集合中的第一个双精度赋值为x,将集合中的第二个双精度赋值为y。 然而,我不是100%确定该做什么以及如何分配。这是我到目前为止的代码:请注意,这一行是对另一个未显示的方法的调用 Scanner input = new Scanner(System.in);

我有一个读取文件的方法。文件的第一行有一个整数,显示还有多少行。之后的每一行都有一对双精度值,没有逗号

例如: 4 13.15 20.2 33.5 2438 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值'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'是什么,将文件中每增加一行的x和y的值从[0]增加到[1]、[2]、3等等,这样我就不会一直覆盖[0]

使用计数器i

这会将读取的下一个值分配给数组x中的第一个插槽,该插槽属于一个名为line的对象。我假设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 ++;

}
这会将读取的下一个值分配给数组x中的第一个插槽,该插槽属于一个名为line的对象。我假设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 ++;

}

作为一个风格注释:出于清晰的原因,我通常倾向于避免在任何复杂的表达式中使用后增量。虽然这一条不会出错,但它仍然是一条好规则。因此,我们两个版本之间的唯一区别是:我也可以使用for循环吗?是的,我更喜欢for循环,因为你事先知道输入n.@mitespathak,这样会为每行添加额外的值,比如x[1],x[2],x[3],x[4]等等。只是作为一种样式注释:为了清楚起见,我通常更喜欢避免在任何复杂表达式中使用postinument。虽然这一条不会出错,但它仍然是一条好规则。因此,我们两个版本之间的唯一区别是:我也可以使用for循环吗?是的,我更喜欢for循环,因为你事先知道输入n.@mitespathak,所以这会为每一行添加额外的值,比如x[1],x[2],x[3],x[4]等等。有些东西在你的代码中看起来不正确。显示filename=input.nextLine,然后while循环处理输入扫描程序。您是否计划使用文件读取器?或者你真的在从控制台输入读取数据?“我只是让你知道有些地方看起来不对劲。”阿尔文邦克只是从控制台输入中读取:代码中有些地方看起来不对劲。显示filename=input.nextLine,然后while循环处理输入扫描程序。您是否计划使用文件读取器?或者你真的在从控制台输入读取数据?“我只是想让你知道有些事情看起来不对劲。@阿尔文邦克正在从控制台输入读取:
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 ++;

}