转换前:
我的1在的人2在2有4的8       (数字的位置是任意的)转换后:
我的一在的人二在二有四的八

解决方案 »

  1.   

    String:=StringReplace(String, '1', '一'; [rfReplaceAll]);
    String:=StringReplace(String, '2', '二'; [rfReplaceAll]);
    ....
      

  2.   


    procedure TForm1.Button1Click(Sender: TObject);
      var
         Str: array[0..9] of string;
         s,s1:string;
         i:Integer;
    begin
     Str[0]:='零';
     Str[1]:='一';
     Str[2]:='二';
     Str[3]:='三';
     Str[4]:='四';
     Str[5]:='五';
     Str[6]:='六' ;
     Str[7]:='七';
     Str[8]:='八';
     Str[9]:='九';
     s:='我的1在的人2在2有4的8';
     for i:=0 to 9 do
       begin
         if pos(IntTostr(i),s)>0 then
           begin
            s1:=StringReplace(s,IntTostr(i),Str[i],[rfReplaceAll]);
            s:=s1;
           end;
       end;
        edit2.Text:=s1;
      //TreplaceFlags
    end;
      

  3.   

    我也来一个function ChangeNumber(const Value: string): string;
    const
      Chinese_Number : array[0..9] of string[2] =
       ('零','一','二','三','四','五','六','七','八','九');
    var
      I: Integer;
      cTemp: Char;
    begin
      I := 1;
      Result := Value;
      while I <= Length(Result) do
      begin
        cTemp := Result[I];
        if cTemp in ['0'..'9'] then
        begin
          Delete(Result, I, 1);
          Insert(Chinese_Number[ord(cTemp) - 48], Result, I);
          Inc(I, 2);
        end
        else Inc(I);
      end;
    end;
      

  4.   

    我也想到一个,呵呵,建立一个枚举类型的变量,让“一”“二”所在的ord正好对应1 、2就可以在编成的时候直接调用了...程序就不写了吧,上面已经有那么多的实现了