Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文本文件读取到2d数组java_Java_Arrays_2d_Transpose - Fatal编程技术网

将文本文件读取到2d数组java

将文本文件读取到2d数组java,java,arrays,2d,transpose,Java,Arrays,2d,Transpose,该程序的目的是从文件中读取二维数组并对其进行转置。我已经完成了转置部分。如何将文件读入数组? 我需要使用的阵列是5x5 import java.util.*; import java.io.*; public class prog464d{ public static void main(String args[]) throws IOException{ final int[][] original = new int[][] { { 1, 2, 3, 4 }, { 5, 6, 7

该程序的目的是从文件中读取二维数组并对其进行转置。我已经完成了转置部分。如何将文件读入数组? 我需要使用的阵列是5x5

import java.util.*;
import java.io.*;
public class prog464d{
  public static void main(String args[]) throws IOException{
    final int[][] original = new int[][] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
    for (int i = 0; i < original.length; i++) {
      for (int j = 0; j < original[i].length; j++) {
        System.out.print(original[i][j] + " ");
      }
      System.out.print("\n");
    }
    System.out.print("\n\n matrix transpose:\n");
    // transpose
    if (original.length > 0) {
      for (int i = 0; i < original[0].length; i++) {
        for (int j = 0; j < original.length; j++) {
          System.out.print(original[j][i] + " ");
        }
        System.out.print("\n");
      }
    }
  }
}
import java.util.*;
导入java.io.*;
公共类prog464d{
公共静态void main(字符串args[])引发IOException{
final int[][]original=新int[][{{1,2,3,4},{5,6,7,8},{9,10,11,12};
对于(int i=0;i0){
对于(int i=0;i
您可以像下面这样做。我听说没有多少人使用.split()字符串方法,但我喜欢使用它哈哈。您必须导入
java.io.File
java.io.FileNotFoundException
java.util.Scanner
。此外,这是假设文本文件使用选项卡作为其delimeter。如果文本文件是不同的维度,只需将
更改为新数组的新维度即可

final int ROWS = 5;
final int COLS = 5;

int[][] nums = new int[ROWS][COLS];
// this is used only in java 7 (not java 6)
try (Scanner input = new Scanner(new File("filename.txt"))) {
    int row = -1; // since we're incrementing row at the start of the loop
    while(input.hasNext()) {
        row++;
        String[] line = input.nextLine().split("\t");
        for(int col = 0; col < COLS; col++) {
            try {
                nums[row][col] = Integer.parseInt(line[col]);
            } catch (NumberFormatException e) {
                e.printStackTrace();
            }
        }
    }
} catch (FileNotFoundException e) {
    // do something here
    e.printStackTrace();
}
这是假设您的文件看起来像:
12345
12345
12345
12345
12345


row.split(“”)将返回字符串数组。for循环将每个值转换为int并存储在原始文件中。

文件,哪个文件?无法看到读取文件的任何努力。
try {
    Scanner input = new Scanner(new File("filename.txt"));
    // insert rest of code here
    input.close();
} catch (FileNotFoundException e) {
    e.printStackTrace();
}
BufferedReader br = new BufferedReader(new FileReader("input.txt"));
String row;
int i=0;
while( (row = br.readLine()) != null ) {
    String[] tokens = row.split(" ");
    int j =0;
    for(String token : tokens) {
        original[i][j++] = Integer.parseInt(token);
    }
}