Delphi函数 处理字符串《确保字符串分号;的位置和数量符合规则》--笔记

来源:互联网 发布:ansys软件介绍 编辑:程序博客网 时间:2024/04/30 12:09

实现效果

每个项目后只跟定一个分号,

传入    ;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;



0 0
原创粉丝点击