實現效果
每個項目后只跟定一個分號,
傳入 ;abc;123;jkl; 返回 abc;123;jkl; //消除了,字符串第一位為分號的問題
傳入 abc;;;123;;;jkl; 返回 abc;123;jkl; //消除了,字符串中項目之后跟了多余的分號;
傳入 abc;;;123;;;jkl 返回 abc;123;jkl; //在字符串最后的項目補上字符串
關鍵函數
Delete {功能說明:刪除字符串中指定的字符串。該函數有三個參數。第一個參數為要進行處理的字符串,第二個參數為從何處開始刪除,第三個參數為刪除的字符個數。}LeftStr(所在單元:StrUtils) {功能說明:返回字符串左邊指定個數的新字符(串)。該函數有兩個參數。第一個參數為完整的字符串,第二個參數為指定個數。}RightStr(所在單元:StrUtils) {功能說明:返回字符串右邊指定個數的新字符(串)。該函數有兩個參數。第一個參數為完整的字符串,第二個參數為指定個數。}Pos {功能說明:查找字符(串)所在位置。該函數有二個參數。第一個參數為要查找的字符(串),第二個參數為被查找字符(串)。}Code: // 需要 uses
StrUtils單元function DealStr(s:string):string;var s2,s3:string;var s1:widestrng; //如果要處理的字符串有漢子,應使用widestrng類型,begin s1:=''; s2:=''; s3:=''; s1:=s; if not (s1='') then begin while Pos(' ',s1)>0 do //消除字符串所有空格 begin Delete(s1,Pos(' ',s1),1); end; if rightstr(s1,1)<>';' then //字符串末尾加上';'以保證進入循環的數據完整性 begin s1:=s1+';'; end; while (Length(s1)>0) do //檢測字符串s1到為0為止 begin if Pos(';',s1)=1 then //判斷第一位是不是';' begin s1:=RightStr(s1, (Length(s1)-Pos(';',s1)) ); end; s3:=LeftStr(s1,Pos(';',s1));//取左邊的字符串 if (s3=';')then //若左邊的字符串只有分號,則舍棄 begin end else begin s2:=s2+s3; //累積符合規則的字符串 end; s1:=RightStr(s1, (Length(s1)-Pos(';',s1)) ); end; end; Result:=s2;end;
新聞熱點
疑難解答
圖片精選