codeseek
TOP
サンプル解説
プログラミング考
codeseekBlog
勉強会
リンク
プロフィール
お読みください
掲示板(SPAMのため閉鎖)







累計:
本日
昨日



Microsoft .NET 関連サンプルの解説


1、System.String.Split(Char[])メソッドのサンプルの読み方

Splitメソッドは文字列を文字列配列に分解するものです。

Splitメソッドを使えば、カンマやセミコロンなどで区切られている文字列を簡単に分解できます。
たとえば、CSVファイル、WebのFormで複数値を持つPOSTなどがカンマで区切られています。
また、セミコロンで区切られているものの代表はC言語系のソースコードです。

Splitメソッドの解説とサンプルは、
MSDN Japan Home  >  MSDN Library Japan  >  .NET Framework  >  リファレンス  >  クラス ライブラリ  >  System  >  String クラス  >  メソッド  >  Split メソッド  >  String.Split メソッド (Char[])
にあります。


サンプルコード本体はString.Split メソッド (Char[])から取得してください。

このサンプルは、なにを目的としたもので、どんな結果がでるかが明記されていないため、短い割りに読むのに苦労します。以下の説明が参考になればいいけど。


Splitメソッドサンプルの目的:
「this is a list of words, with: a bit of punctuation.」を単語毎に分解したい。
単語の区切りにはスペース、カンマ、ドット、コロンのどれか。

実行方法:
このサンプルは単独で動作する「コンソールアプリケーション」として作成されています。
VisualStudioを使う場合以下の手順で実行できます。

1,VisualStudioで「コンソールアプリケーション」プロジェクトを新規作成します。
2,Class1.csまたはModule1.csにサンプルコードを貼り付けます。


結果:
Console(コマンドプロンプト)に以下の表示がされます。

this
is
a
list
of
words
with
a
bit
of
punctuation

VisualStudioで実行すると、一瞬コマンドプロンプトが出て消えてしまいます。
異常ではありません。


Splitメソッドサンプルのここを読めっ:
VB
Dim split As String() = words.Split(New [Char]() {" "c, ","c, "."c, ":"c})
Dim s As String
For Each s In split

C#
string [] split = words.Split(new Char [] {' ', ',', '.', ':'});
foreach (string s in split) {

ほかの部分は、Splitの使い方ではなく、Splitを動作可能にするために存在してるだけなんで、コピーして使うならここです。


Splitメソッドサンプルではこういうこともわかる:
このサンプルでSplitメソッド以外に以下のことのサンプルにもなっています。
1,「{」で改行していない。
2,String配列はforeachで回せる。
3,Charは、VBでは"."c、C#では'.'と記述する。
4,動作可能な短いコンソールアプリケーション。
5,コンソール画面への表示はConsole.WriteLine。


「{」で改行していないサンプルは意外に知られていないようですが、ほかの.NETのサンプルにもあちこちに現れています。私はよく、改行派の人から「{」のために改行していないサンプルなんて見たこと無いといわれるのです。ほら、あるでしょっ。


考察:
Splitメソッドは文字列を分解して文字列配列にいれるというものです。これは業務用アプリケーションでよく使うCSVファイルやWebからPOSTされてきた複数の値を持つフィールドの分解などに頻繁につかいます。
文字列を分解するために使うカンマやセミコロンなどの文字をデリミタといいます。
このサンプルでは単語ごとに分解するものになっていますが、実際の業務用アプリケーションでそのような必要があったことはなく、サンプルとしてはちょっと技術的によりすぎている気がします。
実際に使われることが多いと思われるカンマやダブルコーテーションなどでの例があれば、把握しやすかったのではないかなって思います。そのうちつくってのっけます。