C++/CLI

【C++/CLI】文字列の分割(System.String.Splitメソッド)

文字列を特定の文字で分割し、Stringの配列に格納するには

System.String.Splitメソッド

を用います。
CSVファイルを読み込む時などはカンマ(,)で区切るので、このSplitメソッドを使います。

 

このメソッドの定義は

array^ Split (
    array<String^>^ separator,
    StringSplitOptions options
)

 

パラメータ

separator

分割する文字列をString配列で指定します。

options

StringSplitOptions::Nodeを指定すると分割した文字列が空の場合でもそのまま返します。
StringSplitOptions::RemoveEmptyEntriesを指定すると分割した文字列が空の場合、除去されます

 

【サンプルプログラム】

String^ SrcText = "A,B;C,,E,F";

//分割する文字列の配列
array<String^>^ SepString ={",", ";"};

//文字列の分割
array<String^>^ TextArr1 = SrcText->Split(SepString, StringSplitOptions::RemoveEmptyEntries);
array<String^>^ TextArr2 = SrcText->Split(SepString, StringSplitOptions::None);

このコードを実行し、TestArr1とTestArr2の中身をウォッチで確認すると、以下の通りとなります。

 

文字列の分割

 

区切り文字が1つの場合は

array<String^>^ TextArr3 = SrcText->Split(‘,’);

のように区切ることもできます。
ただし、この場合はシングルクォーテーション( )なので注意して下さい。

コメント

タイトルとURLをコピーしました