回答編集履歴

3 コードミス修正

swordone

swordone score 19677

2015/09/13 13:10  投稿

例から推察するに,もとの並びを転置する必要があるので,それをコードに起こします.
必要な配列の数が3で固定ならば,3×nの2次元配列を作るのがわかりやすいと思います.
nが開始時点で不明なので,ファイルを最後まで読んでその読み込んだ行数で判断することにします.
```java
import java.util.*;
import java.io.*;
public class ReadNums{
   
   public static void main (String[] args){
       int[][] nums;
       List<String> temp = new ArrayList<String>;
       List<String> temp = new ArrayList<String>();
       try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))){
           String line;
           //ファイルから読み込んだ行を一旦リストに入れておく
           while((line = br.readLine()) != null){
               temp.add(line);
           }
           //2次元配列を3×(読み込んだ行数)で初期化
           nums = new int[3][temp.size()];
           //文字列を空白で分割し,数値解析して配列に格納
           for(int i = 0; i < temp.size(); i++){
               String[] s = temp.get(i).split(" ");
               for(int j = 0; j < 3; j++){
                   nums[j][i] = Integer.parseInt(s[j]);
               }
           }
           //各行に格納した数値を出力
           for(int i < 0; i < 3; i++){
           for(int i = 0; i < 3; i++){
               System.out.println(Arrays.toString(nums[i]));
           }
       }catch (IOException e){
           e.printStackTrace();
       }
   }
}
```
2 try-catchを忘れていた

swordone

swordone score 19677

2015/09/11 22:54  投稿

例から推察するに,もとの並びを転置する必要があるので,それをコードに起こします.
必要な配列の数が3で固定ならば,3×nの2次元配列を作るのがわかりやすいと思います.
nが開始時点で不明なので,ファイルを最後まで読んでその読み込んだ行数で判断することにします.
```java
import java.util.*;
import java.io.*;
public class ReadNums{
   
   public static void main (String[] args){
       int[][] nums;
       List<String> temp = new ArrayList<String>;
       BufferedReader br = new BufferedReader(new FileReader("file.txt"));
       String line;
       //ファイルから読み込んだ行を一旦リストに入れておく
       while((line = br.readLine()) != null){
           temp.add(line);
       }
       //2次元配列を3×(読み込んだ行数)で初期化
       nums = new int[3][temp.size()];
       //文字列を空白で分割し,数値解析して配列に格納
       for(int i = 0; i < temp.size(); i++){
           String[] s = temp.get(i).split(" ");
           for(int j = 0; j < 3; j++){
               nums[j][i] = Integer.parseInt(s[j]);
       try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))){
           String line;
           //ファイルから読み込んだ行を一旦リストに入れておく
           while((line = br.readLine()) != null){
               temp.add(line);
           }
       }
       //各行に格納した数値を出力
       for(int i < 0; i < 3; i++){
           System.out.println(Arrays.toString(nums[i]));
           //2次元配列を3×(読み込んだ行数)で初期化
           nums = new int[3][temp.size()];
           //文字列を空白で分割し,数値解析して配列に格納
           for(int i = 0; i < temp.size(); i++){
               String[] s = temp.get(i).split(" ");
               for(int j = 0; j < 3; j++){
                   nums[j][i] = Integer.parseInt(s[j]);
               }
           }
           //各行に格納した数値を出力
           for(int i < 0; i < 3; i++){
               System.out.println(Arrays.toString(nums[i]));
           }
       }catch (IOException e){
           e.printStackTrace();
       }
   }
}
```
1 ideoneで編集した名残を消去

swordone

swordone score 19677

2015/09/11 21:50  投稿

例から推察するに,もとの並びを転置する必要があるので,それをコードに起こします.
必要な配列の数が3で固定ならば,3×nの2次元配列を作るのがわかりやすいと思います.
nが開始時点で不明なので,ファイルを最後まで読んでその読み込んだ行数で判断することにします.
```java
/* package whatever; // don't place package name! */  
 
import java.util.*;
import java.io.*;
public class ReadNums{
   
   public static void main (String[] args){
       int[][] nums;
       List<String> temp = new ArrayList<String>;
       BufferedReader br = new BufferedReader(new FileReader("file.txt"));
       String line;
       //ファイルから読み込んだ行を一旦リストに入れておく
       while((line = br.readLine()) != null){
           temp.add(line);
       }
       //2次元配列を3×(読み込んだ行数)で初期化
       nums = new int[3][temp.size()];
       //文字列を空白で分割し,数値解析して配列に格納
       for(int i = 0; i < temp.size(); i++){
           String[] s = temp.get(i).split(" ");
           for(int j = 0; j < 3; j++){
               nums[j][i] = Integer.parseInt(s[j]);
           }
       }
       //各行に格納した数値を出力
       for(int i < 0; i < 3; i++){
           System.out.println(Arrays.toString(nums[i]));
       }
   }
}
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る