我正在尝试找到解决方案,我怎样才能像这样拆分字符串:
abkgwvc
按array
性格?预期输出为:
array[0] = a
array[3] = g
...
任何想法?
解决方案:
for i := 0 to length(string) do
begin
array[i] = copy(string, i, 1);
end;
字符串可以直接作为字符数组访问,因此无需使用Copy
. 下面的示例基于支持动态数组的 Delphi/Lazarus 版本,但您可以以同样的方式使用旧式固定长度数组 ( Arr: array[..] of Char
);只需删除SetLength
调用并将声明更改为正确的数组类型。
var
Str: string;
Arr: array of Char;
i: Integer;
Len: Integer;
begin
Str := 'abkgwvc';
Len := Length(Str);
SetLength(arr, Len);
// Dynamic arrays are 0-based indexing, while
// strings are 1 based. We need to subtract 1
// from the array index.
for i := 1 to Len do
Arr[i - 1] := Str[i];
end;
(当然,如果您不使用动态数组,则不清楚为什么首先需要一个单独的数组;您可以直接逐个访问字符串。)