- - PR -
CSVファイル→vector→String[][]二次元配列
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-06-01 01:11
お世話になっております。
質問なのですが。 csvから読み込んだものをいったんventorに格納し、 その後、String型の二次元配列に変換というのは可能でしょうか? ご教授よろしくお願いいたします。 | ||||
|
投稿日時: 2006-06-01 01:29
可能です。
| ||||
|
投稿日時: 2006-06-01 01:55
インギさん返信ありがとうございます。
今のところ、CSV読み込んでこういった感じでvectorにつっこんでます。 String型の2次元配列に変換したいのですが、 arrayexceptionというエラーが出てしまいます。 アドバイスのほうよろしくお願いいたします。 while ((strtoken = fr.readLine()) != null) { StringTokenizer st = new StringTokenizer(strtoken, ","); while (st.hasMoreTokens()) { // 1行の各要素をタブ区切りで表示 String str = st.nextToken(); if(count == 0) vec1.add(str); else if(count == 1) vec2.add(str); count++; } count = 0; } } | ||||
|
投稿日時: 2006-06-01 08:15
どこでエラーが発生するのですか? エラーが出る所を修正すればよろしいかとおもいます。 | ||||
|
投稿日時: 2006-06-01 10:01
厳密なCSVでなく、単にカンマ区切りのテキストをString[][]に変換したいのなら、
String#split(String)で生成したString[]をArrayListに追加して、 最後にArrayList#toArray(Object[])でString[][]を生成、 というのが一番簡単に思えます。 | ||||
|
投稿日時: 2006-06-01 11:33
皆さん返信ありがとうございます。
さっそくやってみたのですが、一次元なら変換は できたのですが2次元だと例外(java.lang.ArrayStoreException) がおきてしまいます。 ソースはこんな感じです。 String[][] a = (String[][])vec1.toArray(new String[0][0]); for(int i=0; i<a.length; i++){ System.out.println(a[i]); } | ||||
|
投稿日時: 2006-06-01 11:36
ごめんなさい、下のfor分は余計でした。。
String[][] a = (String[][])vec1.toArray(new String[0][0]); こんな感じです。 | ||||
|
投稿日時: 2006-06-01 12:47
するならこうでしょう。
あと、特別な理由がない限りは、VetcorよりもArrayListの使用をお薦めします。 |