怎么判断字符串中某字符是否为汉字,汉字有多长?

解决方案 »

  1.   

    ascii码大于128的应该就是汉字。
      

  2.   

    string, 判断string[i]最高为是否为1,一个汉字2字节
      

  3.   

    if bytetype(form1.Edit1.Text,1)=mbLeadByte then
        showmessage('汉字');
    判断edit1中第一个字符是不是汉字
      

  4.   

    方法很多啊,我也给一个,自己组合组合var
      ss:string;
      i,k:integer;
    begin
      ss:='dephi很牛*';
       i:= Length(ss);
      for k:=1 to i do
      begin
        if ByteType(ss,k)=mbSingleByte then
          showmessage('第'+inttostr(k)+'是字母')
        else
          begin
          showmessage('第'+inttostr(k)+'是汉字');
          //k:=k+1;
          end;
      end;var
      ans : AnsiString;
      wis : WideString;
      sub : Integer; //汉字的个数
    Begin
      ans := '盗版中国矿大delphi北京';
      wis := WideString( ans );
      sub := Length( ans ) - Length( wis );
      showmessage(inttostr(sub));
    End;
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var str:string;
        s:widestring;
        i:integer;
    begin
        s:='汉字aaaa组bb合ssss测cccc试';
        str:=s;
        for i:= 1 to Length(trim(str)) do
        begin
            str:=s[i];
            if length(str) > 1 then
               showmessage('第' + inttostr(i)+ '是汉字:' + s[i] );
        end;
    end;