繁体   English   中英

我读了我的文本文件,现在如何将值存储到2D数组中?

[英]I read my text file, now how do I store the values into a 2D array?

如上所述,我已经设法读取文件,我正在寻找一种方法来添加到2D数组。 这是我读到的:

20 10 8

4.5 8.45 12.2

8.0 2.5 4.0

1.0 15.0 18.0

3.5 3.5 3.5

6.0 5.0 10.0

import java.io.*;
import java.util.*;
public class Packages 
{

    public static void main(String[] args)throws IOException,FileNotFoundException
    {
        BufferedReader reader = new BufferedReader(new FileReader("Dimensions.txt"));
        while (true) 
        {
            String line = reader.readLine();
            if(line==null);
            {
                 break;
            }
        System.out.println(line);

        }
        reader.close();  
    }

}

  1. 创建扫描仪以读取线, Scanner scanner = new Scanner(line)
  2. 创建一个循环,读取下一个项目, scanner.next()下一个是scanner.next()scanner.nextDouble()
  3. 通过维护lineNumberdoubleCount的计数,将每个数组放入其给定位置的数组中。 如果您不知道尺寸大小,则必须执行一个循环计算每一行,另一个循环计算该行中的双精度数。

以下解决方案使用2D数组来存储文件中的数字。 如果您的输入结构既已知且定义明确,那么这将是一个合适的解决方案。 我的意思是每行有三个数字,你也知道有多少行。 如果没有,那么您可能希望在此处使用Java集合类。

public static void main(String[] args) throws IOException, FileNotFoundException {
    // change this value to whatever row count you actually have
    int NUM_ROWS = 100;
    double[][] array = new double[NUM_ROWS][3];
    BufferedReader reader = new BufferedReader(new FileReader("Dimensions.txt"));

    int counter = 0;
    while (true) {
        String line = reader.readLine();
        if (line == null) break;
        String[] parts = line.trim().split("\\s+");
        for (int i=0; i < 3; ++i) {
            array[counter][i] = Double.parseDouble(parts[i]);
        }

        System.out.println(line);
        ++counter;
    }
    reader.close();  
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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