将 String 转换为两个字符并将两个字符反转
Convert String to two chars and reverse the two chars
您好,我想将一个简单的字符串拆分为一组两个字符,然后将它们反转。
例如 MyStringToBeReversed 为两个字符,每个字符 My String To Be Reversed
然后将每个拆分的两个字符反转为:
圣:= TS
里 := 里
等...
这是我正在使用的代码,但它只在备忘录行上显示一个字符
procedure TForm7.Button1Click(Sender: TObject);
var
MyString: string;
i: integer;
k: integer;
j: integer;
begin
MyString:= Edit1.Text;
for i:= 1 to length(MyString) do
Memo1.Lines.Add(MyString[i]);
// Move(Str[1], MyString, Length(Str));
end;
end.
这应该可以满足您的需求
function ReverseEachTwoChars(AInput : string) : string;
var
i : integer;
begin
if(Odd(Length(AInput))) then
begin
SetLength(AInput, Length(AInput) + 1);
AInput[Length(AInput)] := 'A';
end;
SetLength(Result, Length(AInput));
i := 1;
while(i < Length(Result)) do
begin
Result[i] := AInput[i + 1];
Result[i + 1] := AInput[i];
Inc(i, 2);
end;
end;
测试:
ShowMessage(ReverseEachTwoChars('010203040506'));
输出:
102030405060
您好,我想将一个简单的字符串拆分为一组两个字符,然后将它们反转。
例如 MyStringToBeReversed 为两个字符,每个字符 My String To Be Reversed 然后将每个拆分的两个字符反转为: 圣:= TS 里 := 里 等...
这是我正在使用的代码,但它只在备忘录行上显示一个字符
procedure TForm7.Button1Click(Sender: TObject);
var
MyString: string;
i: integer;
k: integer;
j: integer;
begin
MyString:= Edit1.Text;
for i:= 1 to length(MyString) do
Memo1.Lines.Add(MyString[i]);
// Move(Str[1], MyString, Length(Str));
end;
end.
这应该可以满足您的需求
function ReverseEachTwoChars(AInput : string) : string;
var
i : integer;
begin
if(Odd(Length(AInput))) then
begin
SetLength(AInput, Length(AInput) + 1);
AInput[Length(AInput)] := 'A';
end;
SetLength(Result, Length(AInput));
i := 1;
while(i < Length(Result)) do
begin
Result[i] := AInput[i + 1];
Result[i + 1] := AInput[i];
Inc(i, 2);
end;
end;
测试:
ShowMessage(ReverseEachTwoChars('010203040506'));
输出:
102030405060