uses StrUtils; function SpaceProcess(S: String): String; var T : String; begin T := AnsiReplaceStr(S, ' ', ' '); while T <> S do begin S := T; T := AnsiReplaceStr(S, ' ', ' '); end; Result := AnsiReplaceStr(S, ' ', '-'); end;procedure TForm1.Button1Click(Sender: TObject); begin Showmessage(SpaceProcess('86 029 85088019')); end;
下面这个SpaceProcess2函数应该比上面的SpaceProcess效率高些:function SpaceProcess2(S: String): String; var i : Integer; b : Boolean; begin Result := ''; b := False; for i := 1 to Length(S) do begin if S[i] <> ' ' then begin b := False; Result := Result + S[i]; end else if not b then begin Result := Result + '-'; b := True; end; end; end;
var S: string; i: Integer; slTmp: TStringList; begin S := ' 86 029 85088019'; slTmp := TStringList.Create; slTmp.CommaText := StringReplace(S, ' ', ',', [rfReplaceAll]); for i := slTmp.Count - 1 downto 0 do if slTmp[i] = '' then slTmp.Delete(i); slTmp.Delimiter := '-'; S := slTmp.DelimitedText; Text := S; end;
//Delphi为你准备的function CodeFormat(SpaceCode: string): string; begin with TStringList.Create do begin Delimiter := ' '; CommaText := SpaceCode; Delimiter := '-'; Result := DelimitedText; end; end;ShowMessage(''''+CodeFormat(' 86 029 85088019 ')+'''');//'86-029-85088019'
//这样也行 function CodeFormat(SpaceCode: string): string; begin with TStringList.Create do begin CommaText := SpaceCode; Delimiter := '-'; Result := DelimitedText; end; end;
uses StrUtils;
function SpaceProcess(S: String): String;
var
T : String;
begin
T := AnsiReplaceStr(S, ' ', ' ');
while T <> S do
begin
S := T;
T := AnsiReplaceStr(S, ' ', ' ');
end;
Result := AnsiReplaceStr(S, ' ', '-');
end;procedure TForm1.Button1Click(Sender: TObject);
begin
Showmessage(SpaceProcess('86 029 85088019'));
end;
var
i : Integer;
b : Boolean;
begin
Result := '';
b := False;
for i := 1 to Length(S) do
begin
if S[i] <> ' ' then
begin
b := False;
Result := Result + S[i];
end
else
if not b then
begin
Result := Result + '-';
b := True;
end;
end;
end;
S: string;
i: Integer;
slTmp: TStringList;
begin
S := ' 86 029 85088019';
slTmp := TStringList.Create;
slTmp.CommaText := StringReplace(S, ' ', ',', [rfReplaceAll]);
for i := slTmp.Count - 1 downto 0 do
if slTmp[i] = '' then slTmp.Delete(i);
slTmp.Delimiter := '-';
S := slTmp.DelimitedText;
Text := S;
end;
//Delphi为你准备的function CodeFormat(SpaceCode: string): string;
begin
with TStringList.Create do
begin
Delimiter := ' ';
CommaText := SpaceCode;
Delimiter := '-';
Result := DelimitedText;
end;
end;ShowMessage(''''+CodeFormat(' 86 029 85088019 ')+'''');//'86-029-85088019'
function CodeFormat(SpaceCode: string): string;
begin
with TStringList.Create do
begin
CommaText := SpaceCode;
Delimiter := '-';
Result := DelimitedText;
end;
end;