次のコードを使用して CSV ファイルを読み込んでいます。
String next[] = {};
List<String[]> dataArray = new ArrayList<String[]>();
try {
CSVReader reader = new CSVReader(new InputStreamReader(getAssets().open("inputFile.csv")));
for(;;) {
next = reader.readNext();
if(next != null) {
dataArray.add(next);
} else {
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
これにより、CSV ファイルが配列「dataArray」に変換されます。私のアプリケーションは辞書タイプのアプリ用です。入力データの最初の列は単語のリストで、2 番目の列はそれらの単語の定義です。読み込まれた配列の例を次に示します。
Term 1, Definition 1
Term 2, Definition 2
Term 3, Definition 3
配列内の文字列の 1 つにアクセスするには、次のコードを使用します。
dataArray.get(rowNumber)[columnNumber]
ただし、辞書アプリケーションで表示できるように、すべての用語のリストを生成できる必要があります。私が理解しているように、列自体にアクセスすることは、行にアクセスするよりもはるかに長いプロセスです (私は MATLAB のバックグラウンドを持っているので、これは簡単です)。
入力データの任意の行にすぐにアクセスできるようにするには、データを転置してそのように読み取る方がよいようです。すなわち:
Term 1, Term 2, Term3
Definition 1, Definition 2, Definition 3
もちろん、最初に転置された CSV ファイルを提供することもできますが、Excel または OO Calc では 256 行を超えることはできず、私の辞書には約 2000 の用語が含まれています。
次の解決策のいずれかが歓迎されます。
- 読み込まれた配列を転置する方法
- 「転置された」方法でデータを読み取るように、上記に投稿されたコードの変更
- 配列の列全体をまとめて読み取る簡単な方法