0

我正在阅读的文件有40不同的字符串,我想把它放在一个2d-array大小为[10][4]如何读取一个字符串文件到一个二维数组

代码到目前为止

public class GetAnswers { 

    public static void main(String[] args) { 

     try (BufferedReader br = new BufferedReader(new FileReader("Answers.txt"))) 
     { 
      String [][] answers; 
      answers = new String[10][4]; 
      String line; 
      int i = 0; 
      String [] temp; 
      while ((line = br.readLine()) != null) { 
       temp = line.split("\n"); 
       for (int j = 0; j < answers[i].length; j++) 
        { 
         answers[i][j] = temp[j]; 
         System.out.println(j); 
        } 
       i++; 
      } 
      //System.out.println(answers[1][2]); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

文本文件格式:

apple 
orange 
dog 
cat 

回答

1

大多数Effiecient答案我想。在这里,你发现

import java.io.*; 
public class GetAnswers { 

    public static void main(String[] args) { 

     try (BufferedReader br = new BufferedReader(new 

FileReader("GetAnswers.txt"))) 
     { 
      String [][] answers; 
      answers = new String[10][4]; 
      String line; 
      int i = 0; 
      String [] temp = new String [40]; 
      while ((line = br.readLine()) != null) { 
       temp[i++] = line; 
      } 

      for(int j=0; j<temp.length; j++){ 
        answers[j/4][j%4] = temp[j]; 
        System.out.println(answers[j/4][j%4]); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
} 
} 
+0

非常感谢队友 –

2

假设量控制的,那么你需要为temp创建一个单独的指数,也有内部for循环

int x = 0; 

for (int i = 0; i < 10; i++) { // outer 
    for (int y = 0; y < 4; y++) { // inner 
     answers [i][j] = temp[x++]; 
    } 
} 

但是在做这件事之前我会ld读取所有行并将它们放在一个单独的StringBuilder中,这可以是分割验证在此之前循环

1

你有两个选择,一个是Scary Wombat在那里描述的。

第二个是你可以创建一维数组,并将其视为二维数组。

answers = new int[40]; 
for (int i = 0; i < 10; i++) { 
    for (int j = 0; j < 4; j++) { 
    answers [i*10 + j] = temp[x++]; 
    } 
} 
相关问题