Text := ''; for i := 1 to Length(Source) do begin Text := Copy(Str, 1, 1) + Text; Delete(Str, 1, 1); end;
关键:字符串可以看做是一个字符数组 例: var str1,str2:string; i,j:integer; ch1:char; str1:='12345678'; for i:=1 to length(str1) do begin j:=i mod 2; if j=0 then begin ch1:=str1[i]; str1[i]:=str1[i-1]; str1[i-1]:=ch1; end; end;//变成‘21436587’ setlength(str2,length(str1)); for i:=0 to length(str1) do begin str2[length(str1)+1-i]:=str1[i]; end;//‘str2=78563412’ str1:=str2; //应该ok了 你所需要的规则依此都可以规划出来,自己试试
将字符串按数组取出,数组下标用随机函数random运算就是了怎么问了2遍?
function InvertString(Str: string; Len: Integer = 1): string; var L: Integer; begin while Str <> '' do begin L := Length(Str); if L < Len then Len := L; Result := Result + Copy(Str, L-Len+1, Len); Delete(Str, L-Len+1, Len); end; end;procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(InvertString('112345678', 2)); end;————————————————————————————————— 宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。 —————————————————————————————————
procedure ConvertStr(aSourceStr:String); var I:Integer; vTargetStr:String; begin vTargetStr:=''; for I:=1 to Length(aSourceStr) do if (I mod 2)=0 then vTargetStr:=Copy(aSourceStr,I-1,2)+vTargetStr; ShowMessage(vTargetStr) end; procedure TForm1.Button1Click(Sender: TObject); begin ConvertStr(Trim(Edit1.Text)) end;
for i := 1 to Length(Source) do
begin
Text := Copy(Str, 1, 1) + Text;
Delete(Str, 1, 1);
end;
例:
var str1,str2:string;
i,j:integer;
ch1:char;
str1:='12345678';
for i:=1 to length(str1) do
begin
j:=i mod 2;
if j=0 then
begin
ch1:=str1[i];
str1[i]:=str1[i-1];
str1[i-1]:=ch1;
end;
end;//变成‘21436587’
setlength(str2,length(str1));
for i:=0 to length(str1) do
begin
str2[length(str1)+1-i]:=str1[i];
end;//‘str2=78563412’
str1:=str2;
//应该ok了
你所需要的规则依此都可以规划出来,自己试试
var
L: Integer;
begin
while Str <> '' do
begin
L := Length(Str);
if L < Len then Len := L;
Result := Result + Copy(Str, L-Len+1, Len);
Delete(Str, L-Len+1, Len);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(InvertString('112345678', 2));
end;—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
var
I:Integer;
vTargetStr:String;
begin
vTargetStr:='';
for I:=1 to Length(aSourceStr) do
if (I mod 2)=0 then
vTargetStr:=Copy(aSourceStr,I-1,2)+vTargetStr;
ShowMessage(vTargetStr)
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ConvertStr(Trim(Edit1.Text))
end;