各オーバーロードの内容はプログラム中のコメントに
記載しました。
program Project2; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; var s,s1 : string; elm : TArray; elm2 : TArray ; //sh : TStringHelper; begin try { TODO -oUser -cConsole メイン : ここにコードを記述してください } //sh : TStringHelper s := 'ドッペ,パックン,ニーナ,,ベルト・サタン,,キノッピー'; //Writeln(s); //カンマで分割 //オーバーロードの1つ目、第二引数に正の整数を入れると //先頭から指定した個数だけ分割します。 //分割できる数以上の数を指定すると無視します。 //この場合は、ドッペとパックンだけを切り出します。 elm := s.Split([','],2); write('overload1:');writeln(s); //分割した要素を表示 for s1 in elm do begin writeln(s1); end; writeln; //結合(念のため文字列を初期化) //s := ''; //Writeln(s); //s := s.Join(',',elm); //Writeln(s); //オーバーロードの2つ目、第二引数に //TStringSplitOptions.ExcludeEmptyを指定すると //空文字を無視して切り出します。 //TStringSplitOptionsを指定しない場合、あるいは //TStringSplitOptions.Noneを指定した場合は //空文字も1つとして切り出します。 elm2 := s.Split([','],TStringSplitOptions.None); write('overload2-1:');writeln(s); for s1 in elm2 do begin writeln(s1); end; writeln; elm2 := s.Split([','],TStringSplitOptions.ExcludeEmpty); write('overload2-2:');writeln(s); for s1 in elm2 do begin writeln(s1); end; writeln; //オーバーロードの3つ目、第二引数に正の整数を入れると //先頭から指定した個数だけ分割します。 //このときTStringSplitOptions.ExcludeEmptyを指定すると //空文字を無視して切り出します。 //TStringSplitOptionsを指定しない場合、あるいは //TStringSplitOptions.Noneを指定した場合は //空文字も1つとして切り出します。 //この場合はベルト・サタンも切り出します。 elm2 := s.Split([','],4,TStringSplitOptions.ExcludeEmpty); write('overload3:');writeln(s); for s1 in elm2 do begin writeln(s1); end; writeln; //オーバーロードの4つ目、セパレータに文字列を指定する //こともできます。 //この場合は、ドッペ,パッと,ニーナ,,ベルト・サタン,,キノッピー //に分割されます。 //(セパレータにCRLFを指定することが可能です。) elm2 := s.Split(['クン'],TStringSplitOptions.None); write('overload4:');writeln(s); for s1 in elm2 do begin writeln(s1); end; writeln; //オーバーロードの5つ目、セパレータに文字列を指定したうえで //分割した結果を取り出すことも可能です。 //この場合は、ドッペ,パッだけを取り出します。 //に分割されます。 elm2 := s.Split(['クン'],1,TStringSplitOptions.None); write('overload5:');writeln(s); for s1 in elm2 do begin writeln(s1); end; writeln; readln; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end.
で実際に実行した結果のビットマップが
です。
追伸:サンプルに使用した文字列がマイナーすぎたようなので、ちょっとだけわかりやすい
ものにしました。
0 件のコメント:
コメントを投稿