|
.NET TIPS 文字列を文字列により分割するには?(VB.NET関数活用)デジタルアドバンテージ 遠藤 孝信2005/06/24 |
![]() |
|
|
|
ある文字列を特定の「文字」により分割するには、Stringクラス(System名前空間)のSplitメソッドが利用できる(使用例については「TIPS:メソッドに可変長パラメータを渡すには?」を参照 )。しかし、Splitメソッドでは文字列を「文字列」により分割することはできない。
文字列を文字列により分割したい場合には、正規表現が利用可能なRegexクラス(System.Text.RegularExpressions名前空間)のSplitメソッドを使用することもできるが、正規表現を使うまでもないような用途には、VB.NETのSplit関数が使える。
本稿では、VB.NETおよびC#からVB.NETのSplit関数を利用して文字列を分割する方法について解説する。
VB.NETにおけるSplit関数を使った文字列の分割
Split関数は文字列(第1パラメータ)を、区切り文字列(第2パラメータ)により分割し、分割された文字列(=部分文字列)を配列として返す。以下にその記述例を示す。
Dim parts As String()
parts = Split(target, delimiter, -1, CompareMethod.Binary)
Split関数の第3パラメータには、取得する部分文字列の数を指定する。ここで「-1」を指定した場合には、すべての部分文字列を含む配列を取得できる。
第4パラメータにはCompareMethod.Binary(バイナリ・モード)かCompareMethod.Text(テキスト・モード)を指定する。バイナリ・モードの場合には、区切り文字列と完全に一致した部分でのみ分割されるが、テキスト・モードでは、大文字/小文字、全角/半角、ひらがな/カタカナの区別なしに文字列が分割される*。
| * より詳細には、バイナリ・モードではCompareOptions列挙体で定義されている文字列比較オプションのうち、「IgnoreCase」「IgnoreKanaType」「IgnoreWidth」の組み合わせが区切り文字の比較方法となる。テキスト・モードでは「Ordinal」のみが比較方法となる。 |
次のVB.NETのサンプル・プログラムは、これらの2つのモードの違いを示している。
|
|
| Split関数により文字列を文字列で分割するVB.NETのサンプル・プログラム(vbsplit.vb) | |
このサンプル・プログラムの最後のコメント部分(「' リjkl」)から分かるように、文字列に濁点などを含む半角カタカナ文字列が含まれている場合(文字列の全角表記と半角表記で文字数が異なる場合)、テキスト・モードでは正しく分割されないようなので注意が必要だ。
C#におけるSplit関数を使った文字列の分割
VB.NETの関数は、C#からも利用できる。その具体的な利用方法については「TIPS:VB.NET固有の関数をC#で使用するには?」を参照していただきたい。
C#では、Split関数はStringsクラス(Microsoft.VisualBasic名前空間)の静的メソッドであるSplitメソッドとして利用可能だ。テキスト/バイナリ・モードはCompareMethod列挙体(Microsoft.VisualBasic名前空間)の値により指定する。
以下に上記のVB.NETのサンプル・プログラムと同等のC#のプログラムを示す。
|
|
| VB.NETのSplit関数を使用したC#のサンプル・プログラム(vbsplit.cs) | |
なお、VB.NETでは第2パラメータ以降を省略してSplit関数を呼び出すこともできるが、C#ではパラメータを省略することはできない。![]()
| カテゴリ:クラス・ライブラリ 処理対象:文字列 カテゴリ:C# 処理対象:VB.NET関数 使用ライブラリ:Split関数(Microsoft.VisualBasic名前空間) 使用ライブラリ:CompareMethod列挙体(Microsoft.VisualBasic名前空間) 関連TIPS:メソッドに可変長パラメータを渡すには? 関連TIPS:VB.NET固有の関数をC#で使用するには? |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


