Матрица в текстовом файле - Java - PullRequest
0 голосов
/ 17 ноября 2011

У меня проблема с матрицей. У меня есть матрица в текстовом файле. Эта матрица выглядит:

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 ]

1 голос
/ 17 ноября 2011

Примечание: я использовал String s с символами новой строки \n, работает так же, если строка получена из файла.

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();
    }
}

}



}

Вывод

654234 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
}
0 голосов
/ 17 ноября 2011

Замените строку: System.out.println(rows.toString()); циклом, который проходит через ArrayList, и другим для каждого массива String в ArrayList.

for (String[] row : rows)
{
   for (String num : row)
   {
      System.out.print(num);
   }
   System.out.print("\n");
}
0 голосов
/ 17 ноября 2011

Вы получаете фактический адрес объекта.

//this is pseudo code btw
for each (String row : rows){
  file.writeline(row);
}
file.save();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...