1.実行環境:Delphi XE7 Professional Update 1
Javaの「String,join」がDelphiでも出来ないかと思っていたけど、Delphi XE3から出来るようになっていたらしい。
気づいてなかった。
-
program ConsoleApp;
-
{$APPTYPE CONSOLE}
- uses
-
System.Classes,
-
System.SysUtils;
-
-
var
-
stringList: TStringList;
-
messageText: string;
-
begin
-
stringList := TStringList.Create;
-
-
// 文字列「aaa」「bbb」「ccc」を設定。
-
stringList.Append('aaa');
-
stringList.Append('bbb');
-
stringList.Append('ccc');
-
-
// 1.カンマ区切りで出力。
-
messageText := stringList.DelimitedText;
-
Writeln('1.' + messageText);
-
-
// 2.区切り文字を「&」に変えて出力。
-
stringList.Delimiter := '&';
-
messageText := stringList.DelimitedText;
-
Writeln('2.' + messageText);
-
-
// 3.区切り文字を「 and 」で出力。
-
messageText := string.Join(' and ', stringList.ToStringArray);
-
Writeln('3.' + messageText);
-
-
stringList.Free;
-
end.
出力結果
1.aaa,bbb,ccc
2.aaa&bbb&ccc
3.aaa and bbb and ccc
TStringListのDelimitedTextはDelimiterを変更する事で区切り文字を変更出来たけど、設定できるのはCharのため、2バイト以上設定出来なかった。
Delphi XE3から導入されたTStringHelperのおかげでstring型が拡張されて、「string.join」が書けるようになり、第1引数「Separator」はstringのため、2バイト以上の区切り文字に指定出来るようになっている。
これは便利。
<2015/09/11>
ソースを一部修正。