2014-03-19 24 views
2

要運行一個算法,我需要使用一個文本文件作爲輸入。 輸入示例:解析文本以加倍數組

105.0,45.0,22.0
240.0,3.0,50.0
4344.0,4.0,55.0

在算法我需要計算每一行彼此(第一行本身是第二排和第三排,第二排是第一排,本身和第三排,第三排是第一排,第二排和本身)。輸出是一個距離矩陣,雙值(輸入*輸入矩陣所以在這種情況下,一個3×3矩陣)

到目前爲止,我的代碼如下所示:

public class Distance{ 

public static double calcDist(int dim, double[] x, double[] y) { 
//do computation here 
//output printed here 
} 

public static void main(String[] args) throws IOException { 

String str; 
String inputX; 
String inputY; 
double arrayX = 0; 
double arrayY = 0; 
BufferedReader in = new BufferedReader(new FileReader("C:/input.txt")); 


List<String> list = new ArrayList<String>(); 

while((str = in.readLine()) != null){ 
     list.add(str); 
} 


for(int i=0; i < list.size(); i++){ 
    for(int j=0; j < list.size(); j++){ 

     inputX = list.get(i); 
     arrayX = Double.parseDouble(inputX); 

     inputY = list.get(j); 
     arrayY = Double.parseDouble(inputY); 

     double[] x = {arrayX}; 
     double[] y = {arrayY}; 

    calcDist(x.length,x,y); 
    } 

} 

的距離的方法對自己的罰款運行,但我收到主要的各種錯誤。 Numberformatexceptions。我猜應該在解析的某個地方。幫助讚賞。 在此先感謝!

+2

'應該對我guess'解析的地方 - 不你的編譯器給你的違規行數? – devnull

+0

此外,你期望什麼試圖解析'105.0,45.0,22.0'爲雙? – devnull

+0

如果將所有行讀入'String []',是否有任何理由不使用[適用於JDK的方法](http://docs.oracle.com/javase/7/docs/api/java /nio/file/Files.html#readAllLines(java.nio.file.Path,%20java.nio.charset.Charset))?此外,爲什麼要將一個完美的'List'複製到數組中才能遍歷它?最後,你在哪裏分裂','?還有一件事,在String中調用'toString'是什麼? –

回答

1

您的inputX = stringArr[i].toString();顯然是0或某些無法解析爲Double。請檢查並設置一些,如果條件存在,如果它使雅感..

希望幫助