但し、
class function Join(const Separator: string; const Values: IEnumerable): string; overload; static;
詳細はプログラム中のコメントに記述しました。
以下、プログラム
program Project3;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, System.Variants;
var
s : string;
a,b : single;
s1,S2: string;
elm : TArray;
//sh : TStringHelper;
begin
try
{ TODO -oUser -cConsole メイン : ここにコードを記述してください }
//sh : TStringHelper
//オーバーロードの1つ目
//オープン配列を使用した形です。
writeln('overload1:オープン配列');
s := s.Join(',',['ミリー','ハイネ']);
write('OK:');
writeln(s);
writeln;
s1 := '2.17'; s2 := '9.19';
s := s.Join(',',[s1,s2]);
write('OK:');
writeln(s);
writeln;
//文字列以外の型だとうまく出力できないようです。
//空文字が出力されます。
a := 2.17; b := 9.19;
s := s.Join(',',[a,b]);
write('NG');
writeln(s);
writeln;
//オーバーロードの2つ目
//文字列配列の結合開始位置(0基数)と数を指定
//この例では、ニーナ,ベルト・サタンと表示します。
//文字列配列作成の為にとりあえず分割
s := 'ドッペ,パックン,ニーナ,ベルト・サタン,キノッピー';
elm := s.Split([',']);
writeln('overload2:開始位置と数を指定');
writeln('元の文字列配列');
for s1 in elm do
begin
writeln(s1);
end;
writeln('0基数で2番目の文字列から2個の文字列を結合');
s := s.Join(',',elm,2,2);
writeln(s);
writeln;
readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
実行結果は
です。

0 件のコメント:
コメントを投稿