当我加入一个数组(字符串)时,我会在数组的每个元素之间得到一个分隔符
Writeln(string.Join('-', ['a','b','c']));
-> 'a-b-c'
但是我想在字符串的开头和结尾添加分隔符。我知道我可以这样做
program Project1;
{$APPTYPE CONSOLE}
uses
System.SysUtils;
function JoinAndAddDelimitersToStartAndEnd(const Delimiter: string; const SArr: TArray<string>): string;
begin
Result := Delimiter + string.Join(Delimiter, SArr) + Delimiter;
end;
begin
Writeln(JoinAndAddDelimitersToStartAndEnd('-', ['a','b','c']));
//-> '-a-b-c-'
Readln;
end.
有更好的(内置?)方式吗?
答案 0 :(得分:0)
另一个&#34;丑陋&#34;解决方案是将空元素添加到数组的开头和结尾,如果数组连接比写入更多。通过在数组填充之前添加第一个空元素,然后添加一个空元素,它不会有很多开销,并且优点是1(相对昂贵)字符串连接而不是3。
答案 1 :(得分:-2)
怎么样:
var
s : string;
SArr : TArray<string>;
Delim : string;
begin
Delim := '-';
SArr := ['a','b','c'];
s := format('%s%s%s',[Delim,string.Join(Delim,SArr),Delim]);
end;