我正在尝试寻找解决方案,我该如何拆分字符串:
abkgwvc
到array
的字符?预期产出是:
array[0] = a
array[3] = g
...
任何想法?
<小时/> 的解决方案:
for i := 0 to length(string) do
begin
array[i] = copy(string, i, 1);
end;
答案 0 :(得分:6)
字符串可以直接作为字符数组访问,因此不需要使用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;
(当然,如果你不使用动态数组,那么你不清楚为什么你首先需要一个单独的数组;你可以只访问字符串char-by-char直接。)