比如有字符串:'1231你好啊13发!@!~#$骥伏枥sdfa斯蒂芬阿飞 哦◎ 司法‘’';怎么才能取出其中的中文呢?

解决方案 »

  1.   

    根据ASCII码取吧
    ASCII里可以排除符号和英文
    剩下的就是中文了
      

  2.   

    用ORD() 函数转换为数值,判断就是咯
      

  3.   

    利用WideChar(WideString)来操作,在WideString当中一个个取,然后转换成AnsiString,若转换后长度为2则算是中文,否则为非中文。
      

  4.   

    for i:=1 to Length(s) do
      begin
        if (Ord(s[i]) >= 33) And (Ord(s[i])<=126) then
        begin
         Inc(e);
         Label1.Caption := '英文字数:'+ IntToStr(e);
        end
        else
         if (Ord(s[i]) >= 127) then
         begin
           Inc(c);
           Label2.Caption := '中文字数:' + IntToStr(c div 2);
         end;
        end;
      

  5.   

    Delphi提供对字符的判断:单字节,2字节,3字节类型。
      TMbcsByteType = (mbSingleByte, mbLeadByte, mbTrailByte);
    看到这个这个TYPE,就不用我多说了
    for i:=1 to Length(s) do
      begin
         if ByteType(s[i]) = mbSingleByte then
           Continue
         else 
           // S[I] IS CHINESE. DO YOUR STATEMENT...   
      end;
      

  6.   

    根据ASCII码取
    48---57是数字
    65---90;97---122为字母其余的则为其它字符
      

  7.   

    qingfengsishi(不懂程序) ,ByteType(s[i]) 函数的写法错了,在DELPHI6中应为ByteType(s,i)