我有矩阵问题。我在txt文件中有一个矩阵。该矩阵看起来:
231 324 123
345 565 234
657 234 654
我想要替换元素:
654 234 657
234 565 345
231 324 123
我有一个带有替换元素的算法:3-1-i,其中i是数组中选择元素的数量。我有一个问题,我如何读取文件并将元素保存到数组以及如何实现此循环。这是我尝试读取txt文件并将元素保存到数组:
List<String[]> rows = new ArrayList<String[]>();
while ((line = bfr.readLine()) != null) {
String[] row = line.split(" ");
rows.add(row);
}
System.out.println(rows.toString());
但结果是[Ljava.lang.String;@525483cd
任何人都可以帮我解决这个循环并阅读这个矩阵吗?
答案 0 :(得分:1)
注意:我使用带有换行符\n
的String,如果从文件中获取字符串,则工作方式相同。
import java.io.*;
import java.util.StringTokenizer;
public class file {
public static void main(String args[]) throws IOException {
String s = "231 324 123 \n 345 565 234 \n 657 234 654";
StringTokenizer n = new StringTokenizer(s);
String [] arr = new String[9];
int nn = 0;
while(n.hasMoreElements()){
arr[nn] = n.nextToken();
nn+=1;
}
for(int iii = (arr.length -1); iii >=0 ; iii--){
System.out.print(arr[iii] + " ");
if((iii % 3) == 0) {
System.out.println();
}
}
}
}
输出
654 234 657
234 565 345
123 324 231
编辑从文件中读取字符串
public static void main(String args[]) throws IOException {
int i;
FileInputStream fin = new FileInputStream("files.txt");
String n = "";
do {
i = fin.read();
n += (char) i;
} while(i != -1);
fin.close();
//String n now contains the contents of the file
}
答案 1 :(得分:0)
您正在获取对象的实际地址。
//this is pseudo code btw
for each (String row : rows){
file.writeline(row);
}
file.save();
答案 2 :(得分:0)
将行替换为:System.out.println(rows.toString());
,循环遍历ArrayList,另一行遍及ArrayList中的每个String数组。
for (String[] row : rows)
{
for (String num : row)
{
System.out.print(num);
}
System.out.print("\n");
}