delphi 统计一个文本的文字重复次数并且排序(高手题目)

统计一个文本的文字重复次数比如:1,1,2,3,4,5,1,5,5,1,2,3,结果:1,5,2,3,41出现4次所以排第一5出现3次排第二………………TheFiend朋... 统计一个文本的文字重复次数
比如: 1,1,2,3,4,5,1,5,5,1,2,3,
结果:1,5,2,3,4
1出现4次 所以排第一
5出现3次 排第二
………
………
TheFiend 朋友的算法还差点点
如果2个数出现的重复数是一样多的话 那么就按数字的从大到小排列
如 1,1,2,3,4
结果返回的字符串 1,4,3,2
展开
 我来答
TheFiend
2009-11-25 · TA获得超过625个赞
知道大有可为答主
回答量:1346
采纳率:0%
帮助的人:1202万
展开全部

又是你...

function MySort(List: TStringList; Index1, Index2: Integer): Integer;

var

  I,J:Integer;

begin

  I:=Integer(List.Objects[Index1]);

  J:=Integer(List.Objects[Index2]);

  if i>j then

    Result:=-1

  else

  if i<j then

    Result:=1

  else

    Result:=0;

end;

procedure TForm1.btn1Click(Sender: TObject);

var

  slResult,slTmp:TStringList;

  I,Idx:Integer;

begin

  mmo1.Clear;

  slTmp:=TStringList.Create;

  slResult:=TStringList.Create;

  try

    //统计.

    //注意这个,如果是英文的逗号.

    slTmp.Delimiter:=',';

    slTmp.DelimitedText:=edt1.Text;

    for I:=0 to slTmp.Count-1 do

    begin

      Idx:=slResult.IndexOf(slTmp[i]);

      if Idx=-1 then

        slResult.AddObject(slTmp[i],TObject(1))

      else

        slResult.Objects[Idx]:=TObject(Integer(slResult.Objects[idx])+1);

    end;

    //排序

    slResult.CustomSort(MySort);

    //打印

    for I:=0 to slResult.Count-1 do

      mmo1.Lines.Add(Format('排第%D位的是%S,个数:%D',[i+1,slResult[i],Integer(slResult.Objects[i])]));

  finally

    slResult.Free;

    slTmp.Free;

  end;

end;

jjm1227
2009-11-25 · TA获得超过462个赞
知道小有建树答主
回答量:463
采纳率:0%
帮助的人:371万
展开全部
procedure TForm1.Button1Click(Sender: TObject);
var
s1,s2:string;
i:integer;
begin
s1:='112345155123';

for i:=1 to length(s1) do
begin

s2:= copy(s1,i,1);

if pos(s2,memo1.Text)=0 then
begin
memo1.Lines.Add(s2);
end;

end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式