2017-09-26 215 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]); 
 
}

相關問題