例:有一个字符串"我爱Delphi",我该如何统计汉字的个数和字母的个数(汉字:2个,字母:6个)。
谢谢!!!

解决方案 »

  1.   

    参考 :
    function GetHz0(s:string):string;
    var hz:string;i:integer;
    begin
      hz:='';
      for i:=1 to length(s) do
          begin
            if ByteType(s,i) = mbSingleByte then    //µ¥×Ö½Ú
               begin
                   if trim(hz) = '' then
                      begin
                          hz := s[i]+ #13#10;
                      end
                   else
                      begin
                          if i = Length(s) then
                             begin
                                 hz := hz  + s[i];
                             end
                          else
                             begin
                                 hz := hz  + s[i]+ #13#10;  //  ' ';//
                             end;
                      end;
               end
            else if ByteType(s,i) = mbLeadByte then     //Ë«×ֽڵĵÚÒ»¸ö×Ö½Ú
               begin
                   if trim(hz) = '' then
                      begin
                          hz := s[i];
                      end
                   else
                      begin
                          hz := hz + s[i];
                      end;
               end
            else if ByteType(s,i) = mbTrailByte then   //Ë«×ֽڵĵڶþ¸ö×Ö½Ú
               begin
                   if trim(hz) = '' then
                      begin
                          hz := s[i]+ #13#10;         //ËäȻʵ¼ÊÖв»¿ÉÄÜÓÐÕâÖÖÇé¿ö
                      end
                   else
                      begin
                          if i = Length(s) then
                             begin
                                 hz := hz  + s[i];
                             end
                          else
                             begin
                                 hz := hz  + s[i]+ #13#10; //  ' ';//
                             end;
                      end;
               end;
          end;
        GetHz0:=hz;
    end;
      

  2.   

    Unicode中,将一个汉字进行强制类型转换后的Integer类型是负数,而字母是正数。
      

  3.   

    我只记得如何判断是全角还是半角
    看他的每一个字符是否小于Chr($A1)
    是的话就是半角,字母的个数就得出来啦!至于宽字符,你按照Eastunfail(恶鱼杀手)的试试看,也许可以!