实现效果
每个项目后只跟定一个分号,
传入 ;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;
新闻热点
疑难解答
图片精选