矩阵在txt文件中 - Java

时间:2011-11-17 18:51:00

标签: java file matrix

我有矩阵问题。我在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  任何人都可以帮我解决这个循环并阅读这个矩阵吗?

3 个答案:

答案 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");
}