如何把一字符串中的汉字和字母分离?

解决方案 »

  1.   

    var
      source: String;
      chinese: String;
      English: String;
      len: Integer;
      i: integer;
    begin
      source := '日本pig';
      english := '';
      chinese := '';
      len := Length(source);
      for i := 1 to len do
      begin
        if Ord(source[i]) > 128 then
          chinese := chinese + source[i]
        else
          english := english + source[i];
      end;
      ShowMessage(chinese);
      ShowMessage(english);
    end;
      

  2.   

    var
        s: WideString;
        i: Integer;
    begin
        s := '日月123';
        for i := 1 to Length(s) do
        begin
         if Length(AnsiString(Copy(s, i, 1))) > 1 then
                 ShowMessage('汉字')
             else
                 ShowMessage('英文');
        end;
    end;
      

  3.   

    汉字的第一个字节的Ascii > 128 ,
    由此可以用楼上的代码分离!