|   | 
 
|  
 .NET TIPS 
Stringクラスにより文字列を文字列で分割するには?[2.0のみ、C#、VB]
デジタルアドバンテージ 遠藤 孝信 
2006/01/27 | 
  | 
 
 
 
 | 
  .NET Framework 1.xでは、ある文字列を特定の文字列で分割するには、正規表現が利用可能なRegexクラス(System.Text.RegularExpressions名前空間)のSplitメソッドを使用するか、VB用のSplit関数を使用しなければならなかった(後者については「TIPS:文字列を文字列により分割するには?(VB.NET関数活用)」を参照)。
 しかしもっと安易に利用できる手段が望まれていたようで、.NET Framework 2.0のStringクラス(System名前空間)には、文字列を文字列により分割できる、Splitメソッドの新しいバージョンが追加されている。
 この新しいSplitメソッドは、第1パラメータで指定した文字列配列の要素で対象となる文字列を分割し、その結果を文字列配列として返す。第2パラメータでは、戻り値に空の配列要素を含めるかどうかをStringSplitOptions列挙体(System名前空間)の値(NoneあるいはRemoveEmptyEntries)で指定する。
 以下にこのバージョンのSplitメソッドを使用したサンプル・プログラムを示す。
 
// stringsplit.cs 
 
using System; 
 
class StringSplit { 
  static void Main() { 
    string target = "abcくぎりクギリdefクギリghiクギリjkl"; 
    string[] delimiter = { "くぎり" , "クギリ", "クギリ" }; 
 
    string[] parts; 
    parts = target.Split(delimiter, 
                     StringSplitOptions.None); 
 
    foreach (string s in parts) { 
      Console.WriteLine(s); 
    } 
    // 出力:※空の配列要素が含まれている 
    // abc 
    // 
    // def 
    // ghi 
    // jkl 
 
    parts = target.Split(delimiter, 
                     StringSplitOptions.RemoveEmptyEntries); 
 
    foreach (string s in parts) { 
      Console.WriteLine(s); 
    } 
    // 出力:※空の配列要素は含まれない 
    // abc 
    // def 
    // ghi 
    // jkl 
  } 
} 
 
// コンパイル方法:csc stringsplit.cs
 | 
 
 
 | 
 
| Stringクラスにより文字列を文字列で分割するC#のサンプル・プログラム(stringsplit.cs) | 
| 
 | 
 
 
 
' stringsplit.vb 
 
Imports System 
 
Class StringSplit 
  Shared Sub Main() 
    Dim target As String = "abcくぎりクギリdefクギリghiクギリjkl" 
    Dim delimiter As String() = { "くぎり" , "クギリ", "クギリ" } 
 
    Dim parts As String() 
    parts = target.Split(delimiter, StringSplitOptions.None) 
 
    For Each s As String In parts 
      Console.WriteLine(s) 
    Next 
    ' 出力:※空の配列要素が含まれている 
    ' abc 
    ' 
    ' def 
    ' ghi 
    ' jkl 
 
    parts = target.Split(delimiter, _ 
                  StringSplitOptions.RemoveEmptyEntries) 
 
    For Each s As String In parts 
      Console.WriteLine(s) 
    Next 
    ' 出力:※空の配列要素は含まれない 
    ' abc 
    ' def 
    ' ghi 
    ' jkl 
  End Sub 
End Class 
 
' コンパイル方法:vbc stringsplit.vb
 | 
 
 
 | 
 
| Stringクラスにより文字列を文字列で分割するVBのサンプル・プログラム(stringsplit.vb) | 
| 
 | 
 なお、文字列を「文字」で分割するSplitメソッドのバージョンは以前からあったが、StringSplitOptions列挙体の値がパラメータとして追加されたバージョンが新しく用意されている。
 
利用可能バージョン:.NET Framework 2.0のみ 
カテゴリ:クラス・ライブラリ 処理対象:文字列 
使用ライブラリ:Stringクラス(System名前空間) 
使用ライブラリ:StringSplitOptions列挙体(System名前空間) 
関連TIPS:文字列を文字列により分割するには?(VB.NET関数活用) | 
 
|  
 | 
 
generated by  
 | 
 
 
 | 
 
 
	
		Insider.NET 記事ランキング
		
		
			本日
			月間