能将字符串中的一~十,转换成1~10的阿拉伯数字。

解决方案 »

  1.   

    原字符串全部是中文 if  或者 caseprocedure TForm1.Button1Click(Sender: TObject);
    var
     s,str:string;  // str转换后
     i:integer;
    begin
      s:='一好五';  str:='';
      for i:=1 to length(s) div 2 do
      begin
        if  s[i*2-1]+s[i*2]='一' then str:=str+'1'
        else if   s[i*2-1]+s[i*2]='二' then str:=str+'2'
        else if   s[i*2-1]+s[i*2]='三' then str:=str+'3'
        else if   s[i*2-1]+s[i*2]='四' then str:=str+'4'
        else if   s[i*2-1]+s[i*2]='五' then str:=str+'5'
        else if   s[i*2-1]+s[i*2]='六' then str:=str+'6'
        else if   s[i*2-1]+s[i*2]='七' then str:=str+'7'
        else if   s[i*2-1]+s[i*2]='八' then str:=str+'8'
        else if   s[i*2-1]+s[i*2]='九' then str:=str+'9'
        else if   s[i*2-1]+s[i*2]='十' then str:=str+'10'
        else str:=str+ s[i*2-1]+s[i*2];
      end;  edit1.Text:=str;
    end;
    end.
      

  2.   

    var
      ss:widestring;   //注意!!!
      i,len:integer;
      ret:integer;
    begin
      ss:='大1家好121';
      len:=length(ss);  for i:=1 to len do
      begin
            if ss[i]='一' then ret:=1;
            if ss[i]='二' then ret:=2;
            if ss[i]='三' then ret:=3;
            if ss[i]='四' then ret:=4;
            if ss[i]='五' then ret:=5;
            if ss[i]='六' then ret:=6;
            if ss[i]='七' then ret:=7;
            if ss[i]='八' then ret:=8;
            if ss[i]='九' then ret:=9;
            if ss[i]='十' then ret:=10;
      end;
      

  3.   

    使用宽字符  widestring 就可以汉字和其他混合了。