2014-12-08 3 views
-1

Мне нужно прочитать целую цепочку из файла и затем преобразовать их в одинаковый массив строк.int array to string array

Вот мой код для чтения файла (который в настоящее время не выполняет свою работу).

public void readFile(){ 
    while(scanner.hasNext()){ 
     for(int i = 0; i < 5;i++){ 
      intArray[i] = scan.nextInt(); 
      int temp = intArray[i]; 
      String att = Integer.toString(temp); 
      stringArray[i]=att; 
     } 
    } 
    System.out.println(Arrays.toString(stringMap)); 
} 

И текстовый файл выглядит примерно так

1 2 0 0 0 
4 0 3 0 0 
0 1 0 0 0 
0 0 0 1 0 
0 2 0 0 4 

Как бы я идти вокруг преобразования этого файла в массив строк?

Редактировать:

нижеследующий способ;

public void readFile(){ 
    while(scan.hasNext()){ 
     for(int i = 0; i < 5;i++){ 
      intMap[i] = scan.nextInt(); 
      String temp = Arrays.toString(intMap); 
      stringMap[i]=temp; 
     } 
    } 
    System.out.println(Arrays.toString(stringMap)); 
} 

возвращает следующий массив String [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0 , 0, 0, 0, 0], [0, 0, 0, 0, 0]] вместо нужных номеров из текстового файла

+3

Что вы ожидаете, что ваш 'String' массив выглядеть? Что не работает с вашим текущим решением? –

+0

Простите меня, если я ошибаюсь, но вы можете просто 'readLine()', который даст вам прямо представление 'String' строки –

+0

Вы можете использовать next() вместо nextInt(), чтобы получить следующее« слово »(в этом случае число) в виде строки и хранить непосредственно в String [], если вы не хотите использовать массив int [] и String [] ... – brso05

ответ

0

У вас есть матрица, которую вы хотите сохранить. Таким образом, вам нужен двумерный массив String array[][]. Первый индекс - это строка, второй - столбец. Пока вы читаете свои данные с помощью scanner.hasNext(), вам нужно увеличить первый индексный счетчик.

Нечто подобное

// 'rows' means the count of your rows which you are going to read. 
// if you don't know the rows you need to use a List instead 
String[][] matrix = new String[rows][]; 
int row = 0; 
while(scanner.hasNext()) { 
    matrix[row] = new String[5]; 
    for(int i = 0; i < 5;i++) { 
     matrix[row][i] = "" + scan.nextInt(); 
    } 
}