2015-10-18 41 views
-3

我正確讀取以下輸入嗎?從文本文件中存儲1d數組java

這是到目前爲止我的代碼:

while ((line = br.readLine()) != null) { 
     line = line.substring(line.indexOf('[')+1, line.indexOf(']')); 
     String[] parts = line.split(","); 

     for (int i = 0; i< parts.length; i++) {        
      rangeNo[i]= Integer.parseInt(parts[i]); 

      System.out.println("{" + rangeNo[i] + "}"); 
    } 
    } 

,這是我輸入

[2,9], [3,11] 

此外,當我嘗試打印rangeNo的值[3]它返回0,而不是3

有人可以幫我解決這個問題嗎?

+0

你爲什麼不跑你的代碼,看看,如果是做什麼你想讓它做什麼? –

+0

第一個'['和第一''''之間只有兩個項目。所以'rangeNo [0]'和'rangeNo [1]'中只會有一個有意義的數字。什麼是「範圍」,你期望在第四個元素(索引3)中看到什麼? – RealSkeptic

+0

爲什麼你的輸入看起來更像2D? – Bon

回答

0

您是否期望[2,9], [3,11]位於one行或two單獨的行?

如果它應該是one line,那麼你可能想嘗試這樣的事情

Integer rangeNo[] = new Integer[10]; 
    String line = "[2,9], [3,11]"; 
    line = line.replace('[', ' '); 
    line = line.replace(']', ' '); 
    String[] parts = line.split(","); 

    for (int i = 0; i < parts.length; i++) { 
     rangeNo[i] = Integer.parseInt(parts[i].trim()); 
     System.out.println("{" + rangeNo[i] + "}"); 
    } 
+0

感謝您的快速回復。這正是我想要做的@ jigar surana – Eru

0

,當您點擊這裏

line = line.substring(line.indexOf('[')+1, line.indexOf(']')); 

它匹配的第一個條件。即在[2,9]之後沒有問題,因此只有29在此存儲。

String[] parts = line.split(","); 

所以

parts[0]=2 
parts[1]=9 
parts[2]=0 
相關問題