字符串的处理,急用!(100分)

  • 主题发起人 主题发起人 21ddn.com
  • 开始时间 开始时间
2

21ddn.com

Unregistered / Unconfirmed
GUEST, unregistred user!
aa:='0.96半球/一球0.901.00半球/一球0.86主客同';
本人想在aa中的数值后面加上逗号,也就是经过处理后的aa变成以下
aa:='0.96,半球/一球,0.90,1.00,半球/一球,0.86,主客同';
提示,数值最多是两位小数,比如9.00,10.10等等
 
判断中文字符,在判断中文字符前是否为数字,符合条件的在加入逗号
 
function TAForm23TJ.Isfloat(abc:string): Boolean;
var
i:Integer;
begin
result:=true;
for i:=1 to length(abc)do
if not (abc in ['.','1','2','3','4','5','6','7','8','9','0']) then
result:=false;
end;

以上代码判断一个字符是不是数字
以下代码将字符截取出来判断
aa:='0.96半球/一球0.901.00半球/一球0.86主客同';
for i=0 to length(aa)-1do
begin
copy();
insert();
end;
剩下的自己搞
 
一、首先判断是否是中文:
function IsChina(ch: Char): boolean;
begin
if (Ord(bytetype(ch, 1)) = 1) then
result := True
else
result := False;
end;

二、然后根据数字以点分数组重新分配即可解决。
 
那你可以小数点为基准啊,小数点前面加‘,’,后面2位再加个‘,’
 
procedure TForm1.Button1Click(Sender: TObject);
var
aa, r: string;
begin
aa:='0.96半球/一球0.901.00半球/一球0.86主客同';
r:='';
r:=r+copy(aa,1,4)+',';
r:=r+copy(aa,5,9)+',';
r:=r+copy(aa,14,4)+',';
r:=r+copy(aa,18,4)+',';
r:=r+copy(aa,22,9)+',';
r:=r+copy(aa,31,4)+',';
r:=r+copy(aa,35,6);
showmessage(r);
end;
 
后退
顶部