(急)java arraylist二維形式存取資料 20點

我的程式是先讀取txt檔的資料,將它用split切割成我要存取的資料,然後存在我用arraylist成二維型態存我的資料,但是試了好幾次都不知道問題出在哪??請大大們幫我改一下好嗎??

String str;

int count=0;

ArrayList<String []> vec=new ArrayList<String []>(); //暫存

try

{

FileReader fr=new FileReader("random.as");

BufferedReader br=new BufferedReader(fr);

for(int i=0;i<=count;i++)

{

while((str=br.readLine())!=null)

{

vec.add(str.split("\"")); //將此行以""切成字串陣列, 存入Vector暫存

count++;

}

ArrayList<String []> vector=new ArrayList<String []>();

vector.add(vec);

}

System.out.println(((ArrayList)vector.get(0)).get(0));

br.close();

}

catch(IOException ioe)

{

ioe.printStackTrace();

}

請大大們幫我看出了什麼問題??

Update:

to九五二七:

可以請你說的清楚一點嗎??

1.count=0為什麼不能執行呢??

3和4. "List內接的是String[]",這句話我不太明白

5."列印的是物件型態,也看不到裡面的內容",我不是已經指定出我要列印的索引值了嗎??

不好意思,可以請你幫我講解清楚一點嗎??@@?

Update 2:

ArrayList alist=new ArrayList();

ArrayList al=new ArrayList ();

String line,str;

try

{

FileReader fr=new FileReader("random.as");

BufferedReader br=new BufferedReader(fr);

while((line=br.readLine())!=null)

{

str=line;

String str1[]=str.split("\"");

Update 3:

for(int i=0;i

Update 4:

for(int i=0;i

1 Answer

Rating
  • 9 years ago
    Favorite Answer

    以下幾點解決應該就可以了

    1.

    for(int i=0;i<=count;i++) count=0,所以不會執行檔案處理

    2.

    ArrayList<String []> vector=new ArrayList<String []>();

    宣告在迴圈內,可是又在迴圈外拿來使用,在compile的時候就會出問題

    3.

    List內接的是String[],可是你給他的是ArrayList,在compile時也會出問題

    ArrayList<String []> vector=new ArrayList<String []>();

    vector.add(vec);

    4.

    System.out.println(((ArrayList)vector.get(0)).get(0));

    List接的是String[],你轉型成ArrayList,也會出問題

    5.

    System.out.println(((ArrayList)vector.get(0)).get(0));

    列印的是物件型態,也看不到裡面的內容

    6.

    br.close();請在finally裡執行關閉檔案的動作

    2011-08-08 10:37:16 補充:

    第一點,請先了解迴圈是怎麼執行的...

    你程式的for loop中,

    起始條件是0,

    結束條件也是0.....

    不會執行是正常的。

    第五點,了解List

    get這個方法回傳的是Object

    雖然你指定了index,

    可是並沒有進行正確轉型的動作。

    而且轉型後也要依轉型後的型別做出你想要的資料型態。

    下面這2種情況,

    第一種列印出來的結果是你程式輸出的結果,代碼可能會不同。

    String[] str_arr = {"hello"};

    String str = "hello";

    System.out.println(str_arr);

    2011-08-08 10:37:49 補充:

    System.out.println(str);

    建議你java基本觀念要讀熟一點了...

    2011-08-08 10:53:36 補充:

    第三點

    ArrayList vec=new ArrayList ();

    ........

    ArrayList vector=new ArrayList ();

    vector.add(vec);

    ........

    vector設的型別是String[]

    而vec是ArrayList

    就像你在7-11買東西,

    明明收的是台幣,

    可是你付錢時用美金,你覺得店員要收嗎....XD

    第四點和第三點是相同的問題

    2011-08-08 10:57:01 補充:

    補上面程式所說的

    ArrayList<String[]> vec=new ArrayList<String[]> ();

    ........

    ArrayList<String[]> vector=new ArrayList<String[]> ();

    vector.add(vec);

    ........

Still have questions? Get your answers by asking now.