您的位置:首页 > 编程语言 > Delphi

Delphi开发技巧:字符串的相关判断

2014-08-31 10:29 519 查看
某一字符是否在字符串中

    本实例是用AnsiMidstr()函数获取指定字符串中的单个字符,也可以获取指定长度的子字符串。运行结果如图5.10所示。



图5.10  判断某一字符是否在字符串中

    主要代码如下:

    procedure TForm1.Button1Click(Sender: TObject);

    var

      i,p:Integer;

    begin

     if (Edit1.Text='')or(Edit2.Text='') then

     begin

       ShowMessage('请把信息添全。');

     end

     else

     begin

      if Length(Edit2.Text)=1 then

      begin

        p:=Length(Edit1.Text);

        for i:=1 to p do

        begin

          if Trim(Edit2.Text)=AnsiMidstr(Edit1.Text,i,1) then

          begin

            Label4.Caption:='在字符串中';

            break;

          end

          else

          begin

            Label4.Caption:='不在字符串中';

          end;

         end;

       end

       else

         ShowMessage('字符只能是单个字符。');

     end;

    end;

    字符串是由数字、大写字母或小写字母组成

    本实例是用StrToInt()函数来判断字符串是否由数字组成,当字符串不能由StrToInt()函数进行转换时,在异常处理中用Uppercase()和Lowercase()函数来判断字符串是由大写字符串还是小写字符串组成。运行结果如图5.11所示。



图5.11  判断字符串是由数字、大写字母或小写字母组成

    主要代码如下:

    procedure TForm1.Button1Click(Sender: TObject);

    var

     Isstr : String;

    begin

     Isstr := Edit1.Text;

    try

     StrToInt(Isstr);

     ShowMessage('由数字组成!');

    except

     if Isstr=Uppercase(Isstr) then

      ShowMessage('由大写字母组成!')

     else

      if Isstr=Lowercase(Isstr) then

       ShowMessage('由小写字母组成!')

      else

         ShowMessage('无法识别,可能是混杂型。')

    end;

    end;

    字符串中的某一字符是否大写

    本实例先用Ansiuppercase()函数将要查找的字符串转换成大写,然后用AnsiMidstr()函数在字符串中进行查找。运行结果如图5.12所示。



图5.12  判断字符串中的某一字符是否大写

    主要代码如下:

    procedure TForm1.Button1Click(Sender: TObject);

    var

      s,x:String;

      i:Integer;

    begin

      s:=Ansiuppercase(Trim(Edit2.Text));

      for i:=1 to Length(Trim(Edit1.Text)) do

      begin

         if Ansiuppercase(Trim(Edit2.Text))=AnsiMidstr(trim(Edit1.Text),i,1) then

         begin

           Label3.Caption:='有';

           break;

         end

         else

           Label3.Caption:='没有';

      end;

    end;

    字符串中是否有小写字母

    本实例是用length ()函数来获取字符串的总长度,再用自定义函数IsLower()对字符串中的每个字符进行判断,如果是小写字母,则返回True。运行结果如图5.13所示。



图5.13  判断字符串中是否有小写字母

    主要代码如下:

    procedure TForm1.Button1Click(Sender: TObject);

    var

     s : String;

     n,i,islow : Integer;

    begin

     islow := 0;

     s := Edit1.Text;

     n := Length(s);

     for i:=0 to n-1 do

      if IsLower(s[i]) then

      begin

        islow := 1;

        break;

      end;

     if islow>0 then

      ShowMessage('该字符串中有小写字母')

     else

      ShowMessage('该字符串中没有小写字母');

    end;

    字符串中是否有指定的字符

    本实例是用pos()函数来获取字符在字符串中的位置,如果返回的数字大于0,则表示该字符串中包含指定的字符,如果返回值为0,则不包含。运行结果如图5.14所示。



图5.14  判断字符串中是否有指定的字符

    主要代码如下:

    procedure TForm1.Button1Click(Sender: TObject);

    begin

     if pos(Edit2.Text,Edit1.Text)=0 then

      ShowMessage('没有指定的字符')

     else

      ShowMessage('字符串中包含字符'+Edit2.Text);

    end;

    字符是否可以转换成整数

    本实例是用StrToIntDef()函数来判断字符串是否为整数,如果字符串是整数,那么StrToIntDef(s,0)和StrToIntDef(s,1)将返回转换后的整数,如果字符串不是整数, StrToIntDef(s,0)将返回0,StrToIntDef(s,1)将返回1。运行结果如图5.15所示。



图5.15  判断字符是否可以转换成整数

    主要代码如下:

    function TForm1.IsIntStr(const S: String): Boolean;

    begin

     if StrToIntDef(S,0)=StrToIntDef(S,1) then

      Result:=True

     else

      Result:=False;

    end;

    procedure TForm1.Button1Click(Sender: TObject);

    begin

     if IsIntStr(Edit1.Text) then

      ShowMessage('可以转换成整数')

     else

      ShowMessage('不可以转换成整数');

    end;

    字符中是否有汉字

    本实例是用Length()函数来获取字符串的长度,用Ord()函数来获取每个字符的ASCII码,当ASCII码的值大于$7F时,表示该字符是汉字的前一个字节,并用Copy()函数来获取当前的汉字。运行结果如图5.16所示。



图5.16  判断字符中是否有汉字

    主要代码如下:

    procedure TForm1.Button1Click(Sender: TObject);

    var

     str,s,sj: String;

     i: integer;

    begin

     str := trim(Edit1.Text);

     i := 0;

     while i< Length(str) do

     begin

      if ord(str[i]) > $7F then

      begin

       s := Copy(str,i,2);

       sj :=sj+ '"'+s+'"';

       i := i+2;

      end

      else  i:=i+1;

     end;

     Label2.Caption := '在字符串中含有汉字'+sj;

    end;

    字符中是否有双字节

    中文所用的字符全是双字节字符,英文所用的字节全是单字节字符,也就是mbSingleByte。本实例是用ByteType()函数返回字符串指定位置上的字符,如果不是mbSingleByte,则表示为双字节字符。运行结果如图5.17所示。



图5.17  判断字符中是否有双字节

    主要代码如下:

    procedure TForm1.Button1Click(Sender: TObject);

    var

     s,s1: String;

     i : Integer;

    begin

     s := Edit1.Text;

     i := 0;

     while i<Length(s) do

     begin

      if (ByteType(S,i) <> mbSingleByte) then

      begin

       s1 := s1+ Copy(s,i,2)+' ';

       i := i+2;

      end

      else

       i:= i+1;

     end;

     Label2.Caption := Trim(s1);

    end;

    判数输入的字符串是否为整数

    本实例是用库函数sign()来判断数字是否为整数,当传入的值小于0则返回?1,若传入的值大于0则返回1,否则返回0。在用sign()函数时,要在单元中加入Math单元。运行结果如图5.18所示。



图5.18  判数输入的字符串是否为整数

    主要代码如下:

    procedure TForm1.Button1Click(Sender: TObject);

    var

     s : String;

     i : Integer;

    begin

     s:=Edit1.Text;

     try

      i:=StrtoInt(s);

      if sign(i)=1 then  //添加单元Math或 if i>0 then ...

       Label2.Caption := '是正整数'

      else

      begin

       if i=0 then

        Label2.Caption := '是整数'

       else

        Label2.Caption := '非正整数';

      end;

     except

      Label2.Caption := '输入无效';

     end;

    end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: