2012-05-25 55 views
-4

我所擁有的文件導入數組,它包含數組是這樣的: 這裏是我的.txt的Java:從文件到陣列

itemlist= new int[][] { 
    { 0, 0, 0, 0, 0}, 
    { 1, 1, 1, 1, 1}, 
    { 2, 2, 2, 2, 2}, 
    { 3, 3, 3, 3, 3}, 
    { 4, 4, 4, 4, 4} 
}; 

的一個片段正如你所看到的.txt文件包含一個多維數組列表。有沒有什麼辦法將它轉換爲java中的數組?

乾杯!

+6

因此,您的文件的內容本質上是Java源代碼? – biziclop

+6

是的,有一種方法。你嘗試過什麼? –

+0

yup file = source但我認爲我可以修改它 – AndroidXTr3meN

回答

0

我覺得這是某種形式的功課,所以我不能給你的代碼,但如果我是你,我會:

1)把從文件中的文本到一個String(不換行引號)

2)(我假設one file == one table data)首先嚐試{和最後}(再次正則表達式之間的隔離文本可以幫助)

3)從點2分含量得到各{}在單獨的數據地方(使用拆分和再次正則表達式)

陣列的4)估計的大小由{}計數對和,或通過迭代字符)

5)現在我可以創建表(我知道大小)

計數 ,它們內部(由正則表達式

6)在第3點,我隔離了所有的行(或列,取決於你將它們放在表格中的方式),所以現在是時候讀取它們並放在表格中,所以我們需要遍歷來自點3的所有數據:

6.1)drop {}括號

6.2)使用,

6.3拆分)修剪空間

6.4)解析到整型並投入陣列

希望這是足以創建的代碼。

+0

謝謝,我在正則表達式的一部分,但它不會找到{}方括號。:( – AndroidXTr3meN

+0

@ AndroidXTr3meN你試過了嗎?也許[this](http://www.regular-expressions.info/dot.html)會幫你 – Pshemo

+0

pattern \\ {([^}] *)\\};但它沒有匹配,因爲我有新的線路\ n – AndroidXTr3meN

0
public static void main(String[] args) { 

    int itemlist[][]= new int[][] { 
     { 0, 0, 0, 0, 0}, 
     { 1, 1, 1, 1, 1}, 
     { 2, 2, 2, 2, 2}, 
     { 3, 3, 3, 3, 3}, 
     { 4, 4, 4, 4, 4} 
    }; 

    int length=itemlist.clone().length*itemlist.length; 
    int tab[]=new int[length]; 
    int i=1; 
    for(int j=0;j<itemlist.length;j++) 
    { 
     for(int k=0;k<itemlist.clone().length;k++) 
     { 
     tab[i]=itemlist[j][k]; 
     i++; 

     if (i== length) break ; 
     } 
    } 

    for(int h=0;h<length;h++){ 
     System.out.println(" "+tab[h]); 
    } 
}