所以这里只是一个简单的问题,我已经完成了文件阅读的一些工作,但还不足以精通它。我有一个网格:
10 14 81 34 76
18 22 64 4 87
1 6 42 13 15
4 32 21 87 31
7 42 24 20 15
(只是一个示例网格)
我目前在文本文件中有它。如何在2D阵列上将每个数字输入到自己的位置,看起来很简单,但由于我的知识有限,我无法做到!
答案 0 :(得分:1)
首先假设您知道尺寸。第一步是做文件阅读。创建缓冲区阅读器
BufferedReader br=new BufferedReader(new FileReader(path));
然后循环阅读这个阅读器
int[][] result=new int[rownum][columnnum];
int i =0;
While(br.ready()){
String line=br.readline();
String[] tokens=line.split(" ");
// now put each in 2D array
for(int j=0;j<tokens.length;j++){
result[i][j]=Integer.parseInt(tokens[j]);
}
i ++;
}
如果您不知道大小,那么在该循环中放入ArrayList。然后使用toArray方法
答案 1 :(得分:1)
嗯,这很合乎逻辑。
让我们分析你的网格,
这是一些代码,
File file = new File("test.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
ArrayList<String> lines = new ArrayList<String>();
String line;
while ((line = bufferedReader.readLine()) != null) {
lines.add(line);
}
fileReader.close();
现在,ArrayList行包含文本文件中的所有行。你现在要做的就是用一个简单的for循环迭代它并提取值。
String [] singleline = lines.get(0).split(" "); // this array contains all integers at line 0 .
只需将其解析为整数值,然后以您喜欢的任何方式将其添加到2D数组中。
ArrayList<Integer> singleLineIntegers = new ArrayList<Integer>();
for(i=0;i<temp.length;i++)
singleLineIntegers.add(Integer.parseInt(temp[i]));
现在这个singleLineIntegers数组包含第1行中的所有整数,使用lines数组重复此操作并将其插入到2d数组中。