實(shí)現(xiàn)效果
每個(gè)項(xiàng)目后只跟定一個(gè)分號(hào),
傳入 ;abc;123;jkl; 返回 abc;123;jkl; //消除了,字符串第一位為分號(hào)的問(wèn)題
傳入 abc;;;123;;;jkl; 返回 abc;123;jkl; //消除了,字符串中項(xiàng)目之后跟了多余的分號(hào);
傳入 abc;;;123;;;jkl 返回 abc;123;jkl; //在字符串最后的項(xiàng)目補(bǔ)上字符串
關(guān)鍵函數(shù)
Delete {功能說(shuō)明:刪除字符串中指定的字符串。該函數(shù)有三個(gè)參數(shù)。第一個(gè)參數(shù)為要進(jìn)行處理的字符串,第二個(gè)參數(shù)為從何處開(kāi)始刪除,第三個(gè)參數(shù)為刪除的字符個(gè)數(shù)。}LeftStr(所在單元:StrUtils) {功能說(shuō)明:返回字符串左邊指定個(gè)數(shù)的新字符(串)。該函數(shù)有兩個(gè)參數(shù)。第一個(gè)參數(shù)為完整的字符串,第二個(gè)參數(shù)為指定個(gè)數(shù)。}RightStr(所在單元:StrUtils) {功能說(shuō)明:返回字符串右邊指定個(gè)數(shù)的新字符(串)。該函數(shù)有兩個(gè)參數(shù)。第一個(gè)參數(shù)為完整的字符串,第二個(gè)參數(shù)為指定個(gè)數(shù)。}Pos {功能說(shuō)明:查找字符(串)所在位置。該函數(shù)有二個(gè)參數(shù)。第一個(gè)參數(shù)為要查找的字符(串),第二個(gè)參數(shù)為被查找字符(串)。}Code: // 需要 uses
StrUtils單元function DealStr(s:string):string;var s2,s3:string;var s1:widestrng; //如果要處理的字符串有漢子,應(yīng)使用widestrng類(lèi)型,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 //字符串末尾加上';'以保證進(jìn)入循環(huán)的數(shù)據(jù)完整性 begin s1:=s1+';'; end; while (Length(s1)>0) do //檢測(cè)字符串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 //若左邊的字符串只有分號(hào),則舍棄 begin end else begin s2:=s2+s3; //累積符合規(guī)則的字符串 end; s1:=RightStr(s1, (Length(s1)-Pos(';',s1)) ); end; end; Result:=s2;end;
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注