有沒有辦法從SplitString函數(Delphi XE,StrUtils)產生的動態數組中排除空字符串,而不必遍歷數組?使用SplitString消除空白字符串
如果沒有,任何人都可以建議最有效的方法來做到這一點?現在我是這樣做的:
function SplitStringNoEmpty(myString : string; myDelimiters : string):TStringDynArray;
var
words_array_pre : TStringDynArray;
words_array_pos : TStringDynArray;
array_length : Integer;
actual_length : Integer;
current_word : string;
procedure AddElement(const Str: string);
begin
words_array_pos[actual_length]:= Str;
inc(actual_length);
end;
begin
words_array_pre:= SplitString(myString, whitespaceNewLineCharacterSet + punctuationCharacterSet);
array_length:= Length(words_array_pre);
if (array_length >0) then
begin
actual_length:= 0;
SetLength(words_array_pos, array_length);
for current_word in words_array_pre do
begin
if (current_word <> '') then
AddElement(current_word);
end;
SetLength(words_array_pos, actual_length);
result:= words_array_pos;
end
else
result:= words_array_pre;
end;
你有沒有考慮只是在做什麼SplitString做,但不包括在結果空元素? – 2012-04-02 20:16:02