設定情報なんかを "01100" みたいな文字列にして保管することってあるだろう。
例えば、YES/NO 式のアンケート結果を DB に保存する時に、
「5問の答えを、YES なら 1、NO なら 0 にして一つの文字列にして保存」
なんてね。(特に、Web 系なんかで、フレームワーク化するために DB の全項目の型を「文字列型(VARCHAR)」に統一してる時なんかさ)
上の例が A さんのデータだとすれば、A さんは、2問目、3問目のみ YES と答え、その他は NO と答えたということだな。
こういう文字列を処理する時、1バイトずつに分解して配列に突っ込むのもよくやる方法だろう。
Perl なら、split 関数使って、
@data = split //, $enquate;
で、
$data[0] = 0$data[1] = 1$data[2] = 1$data[3] = 0$data[4] = 0
のように保存される。
本来、// の間には区切り文字(separator)が入るが、何も入れなければ1文字ずつに分解する。
VB.NET にも Split メソッドが存在しているので、
Dim data() As String = enquate.Split()
みたいに書いてみたけど駄目だった。
Split メソッドの場合、区切り文字を省略した場合、半角スペースを指定したものとみなすようだ。
なんだその仕様(^^;
ああ、英語の場合は、単語間に半角スペースが入るのでこういう仕様は都合がいいのか。文章を単語毎に分割する時。ま、半角スペースくらい、面倒くさがって省略すんなやって思うけど。
まあ、代わりにキャラクタ単位で文字列を分割して配列化する ToCharAllay メソッドがあるので許すけど。
Dim data() As Char = enquate.ToCharArray
これで、data 配列に1文字ずつに分解されたデータが格納される。
コメントする