将文本文件读取到2d数组java
该程序的目的是从文件中读取二维数组并对其进行转置。我已经完成了转置部分。如何将文件读入数组? 我需要使用的阵列是5x5将文本文件读取到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
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);
}
}