«前の日記(2008年05月08日) 最新 次の日記(2008年05月10日)» 編集

日々をアレコレ


2008年05月09日

スペース区切りデータファイル

スペース区切りデータファイルという、プログラマ泣かせなデータファイルの読み込み処理を作ったよ。CSVやタブ区切りデータファイルならば、カンマやタブ文字の1文字文でデータが区切られているので、Split関数で区切り文字を指定すれば文字列型配列を取得することができる。けど、今回扱ったスペース区切りデータファイルは、データの間が1個以上のスペース文字で区切られている。なので、Split関数でスペースを指定して帰ってくる文字列型配列は、欲しいデータ個数以上の要素を持つことになる。しかも、今回はすでにCSVファイルの読み込み処理と整合性を持たせる必要があるので、文字列型配列型以外は使うことができない仕様。そこで、次のようにすることにした。

  1. Split関数を使って無駄な要素を持つ文字列配列を作成。
  2. 上で作った文字列配列の各要素をTrim関数で前後の空白文字を排除したものが殻でなければ、ArrayListに要素を追加していく。
  3. 上でできたArrayListの要素数だけ文字列型配列をnewして生成し、その各要素にArrayListの要素を代入していく。

一度ArrayListを経由しているのがややこしいけど、文字列型配列(文字列型に限らず型配列全般だろうけど)の要素の削除ができない以上仕方ないよね。


«前の日記(2008年05月08日) 最新 次の日記(2008年05月10日)» 編集