2017-09-26 171 views
0

我从文本文件中使用以下信息取数据:在一个字符串数组将数字转换为二维int数组

Jessica 80 90 
Peter 106 50 
Lucas 20 85 
Sarah 90 40 
John 35 12 

该数据随后被转换成一个字符串数组,并通过被输出我的代码。我希望能够在将数字转换为int [] []数组的同时保留字符串数组中的名称,以便我可以操作变量以找到学生和考试的平均值。我工作的代码如下所示:

import java.io.*; 
import java.util.*; 

public class Array_2D{ 

public static String[] readLines(String filename) throws IOException { 
     FileReader fileReader = new FileReader(filename); 

     BufferedReader bufferedReader = new BufferedReader(fileReader); 
     List<String> lines = new ArrayList<String>(); 
     String line = null; 

     while ((line = bufferedReader.readLine()) != null) { 
      lines.add(line); 
     } 

     bufferedReader.close(); 

     return lines.toArray(new String[lines.size()]); 
} 

public static void inputstream() throws IOException { 
     String filename = "data.txt"; 
     try { 
      String[] lines = readLines(filename); 
      for (String line : lines) 
      { 
       System.out.println(line); 
      } 
     } catch(IOException e) { 
      System.out.println("Unable to create " + filename+ ": " + e.getMessage()); 
     } 

是否有人能帮助我从字符串数组到int[][]转换的数字,这样我可以通过行和列操纵数的任何信息?感谢您的时间。

+3

你可以使用OOP,并创建一个Student对象每一行。这将导致更好的可读性设计。 – jwils

回答

1

在你的每一行代码包含了一个名字和两个整数, 这可能不是通用的,但尝试类似的东西,

String names = new String[numberOfLines]; 
 
int scores[][] = new int[numberofLines][2]; 
 
for(int i = 0;i < numberOfLines;i ++){ 
 
    String words[] = lines[i].split("\\s+"); 
 
    names[i] = words[0]; 
 
    scores[i][0] = Integer.parseInt(words[1]); 
 
    scores[i][1] = Integer.parseInt(words[2]); 
 
}