VB.NET で、文字列を1バイトずつに分解

設定情報なんかを "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文字ずつに分解されたデータが格納される。
Clip to Evernote

トラックバック(0)

このブログ記事を参照しているブログ一覧: VB.NET で、文字列を1バイトずつに分解

このブログ記事に対するトラックバックURL: http://blog.netandfield.com/mt/mt-tb.cgi/3296

コメントする

このブログ記事について

このページは、shinodaが2015年1月30日 17:38に書いたブログ記事です。

ひとつ前のブログ記事は「俺のニンニク鍋」です。

次のブログ記事は「ありゃ、また野菜かき揚げになったか・・・」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら