从txt文件读取矩阵并保存到二维数组
问题描述:
我使用下面的代码从文件中读取一个矩阵,它运行良好,但现在我需要通过空格拆分行和列以成为矩阵以便使用它在另一个功能。不幸的是我不知道如何处理ArrayList,那么任何人都可以帮助我编辑这段代码吗?从txt文件读取矩阵并保存到二维数组
private static void read(Matrix matrix) throws UnsupportedEncodingException, IOException {
String line = null;
List<String[]> list = new ArrayList<String[]>();
BufferedReader reader = new BufferedReader(new FileReader("D:\\TDarray.txt"));
while ((line = reader.readLine())!=null) {
list.add(getArray(line));
}
reader.close();
for (String[] stringArr : list) {
for(String str : stringArr){
System.out.print(str+" ");
}
System.out.println("");
}
}
private static String[] getArray(String s){
String[] array = s.split("\\s");
return array;
}
,这是我的文本文件的样本:
3.2 4.7
0.4 0.5 0.6 0.1 0.7
0.1 0.8 0.4
0.1 0.3 0.4 0.9 1.0
0.2 0.9 0.6 0.7 0.2
答
要由换行符分割栏只需添加\n
。对于您的打印输出,您也可以使用它。现在,而不是打印,你可以填写你的矩阵。
for (String[] stringArr : list) {
for(String str : stringArr){
System.out.print(str+" ");
}
System.out.print("\n");
}
答
您可以简单地使用这段代码。 如果你需要使用的数学计算矩阵后期有没有点把它作为List<String[]>
private static Vector<Vector<Float>> loadMatrixAsVector() throws Exception {
String line = null;
BufferedReader reader = new BufferedReader(new FileReader(
"D:\\test.txt"));
Vector<Vector<Float>> matrix = new Vector<Vector<Float>>();
while ((line = reader.readLine()) != null) {
Vector<Float> rowVector = new Vector<Float>();
for (String value : line.split(" ")) {
rowVector.add(Float.valueOf(value));
}
matrix.add(rowVector);
}
reader.close();
System.out.println("Matrix : " + matrix);
return matrix;
}
*处理的ArrayList *的意思是什么呢? – Guy
寻求调试帮助的问题(“为什么这个代码不工作?”)必须包含所需的行为,特定的问题或错误以及在问题本身中重现问题所需的最短代码。没有明确问题陈述的问题对其他读者无益。请参阅:如何创建[mcve]。使用“编辑”链接来改善你的*问题* - 不要通过评论添加更多信息。谢谢! – GhostCat
“.txt”文件中矩阵的当前结构是什么。请发布当前文本文件的样本 – FreshD