【问题标题】:How to store text file into 2d int array如何将文本文件存储到二维 int 数组中
【发布时间】:2020-12-19 05:50:50
【问题描述】:

我有两个格式如下的文件,其中第一个 int 需要存储在某处,第二行及以下将存储到 2d 数组中。第一个数字,在本例中为 4,表示大小为 int [][] array = new int [2*4][4];然而,4 不应该是数组的一部分,应该被丢弃。文件路径将通过命令行提供给程序。我找不到任何可以执行此功能的方法。

4
7 5 6 4
5 4 6 7
4 5 6 7
4 5 6 7

【问题讨论】:

  • 什么具体问题阻碍了你的进步?
  • 我没有执行我正在寻找的功能的代码,我在这里尝试或找到的任何东西都无法用于此特定目的。
  • Stack Overflow 是一个问答论坛,而不是免费的代码编写服务。但是,如果您有一些您已经尝试过但遇到问题的代码,请将其添加到您的问题中,我们很乐意为您提供帮助。

标签: java io command-line-arguments iostream


【解决方案1】:

我使用 java 7 API 将文件读入列表。

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class SOTest {

    public static void main(String[] args) throws IOException  {
        int[][] arr = null;
        String path = args[0];
        List<String> lines = Files.readAllLines(Paths.get(path));
        for (int i=0; i<lines.size() ; i++) {
            String[] aStr = lines.get(i).split("\\s+");
            if(aStr.length==1) {    
                int size = Integer.valueOf(aStr[0]);
                System.out.println("Size of array "+size);
                arr = new int[size][size];
                populateArr(arr, lines.subList(i+1, i+size+1));
                print(arr);
                i = i+size;
            }   
        }
    }

    public static void populateArr(int[][] arr, List<String> list) {
        for(int i=0; i<list.size(); i++) {
            String[] values = list.get(i).split("\\s+");
            for(int j=0; j<values.length; j++) {
                arr[i][j] = Integer.parseInt(values[j]);
            }
        }
    }
    
    private static void print(int[][] arr) {
        System.out.println("***********PRINT***********");
        for(int i=0; i<arr.length; i++) {
            for(int j=0; j<arr[i].length; j++) {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }       
    }
}

输入(文件位置) 文件内容如下

4
7 5 6 4
5 4 6 7
4 5 6 7
4 5 6 7
3
1 2 3
4 5 6
7 8 9

java 程序的输出

Size of array 4
***********PRINT***********
7 5 6 4 
5 4 6 7 
4 5 6 7 
4 5 6 7 
Size of array 3
***********PRINT***********
1 2 3 
4 5 6 
7 8 9 

【讨论】:

    猜你喜欢
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多