簡體   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